Javascript 在嵌入式youtube播放器中钩住点击事件

Javascript 在嵌入式youtube播放器中钩住点击事件,javascript,jquery,html,youtube-api,Javascript,Jquery,Html,Youtube Api,每当有人在嵌入式youtube视频上单击“播放”按钮时,我想运行一个名为stopSlide的函数。甚至当他们点击嵌入视频中的任何地方时,让功能运行对我来说现在都很好 我如何才能做到这一点?有一个YouTube JavaScript API提供事件回调 不幸的是,没有直接检测点击事件的方法(至少我不知道有)。但是,您可以检测您可以使用的播放器状态的变化 首先,您需要通过使用一个特殊的URL将JS API嵌入到播放器中来启用JS API: http://www.youtube.com/v/VIDEO

每当有人在嵌入式youtube视频上单击“播放”按钮时,我想运行一个名为
stopSlide
的函数。甚至当他们点击嵌入视频中的任何地方时,让功能运行对我来说现在都很好


我如何才能做到这一点?

有一个YouTube JavaScript API提供事件回调

不幸的是,没有直接检测点击事件的方法(至少我不知道有)。但是,您可以检测您可以使用的播放器状态的变化

首先,您需要通过使用一个特殊的URL将JS API嵌入到播放器中来启用JS API:

http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1
然后,您需要创建一个事件处理程序函数:

function player_state_changed(state) {
  /* This event is fired whenever the player's state changes.
     Possible values are:
     - unstarted (-1)
     - ended (0)
     - playing (1)
     - paused (2) 
     - buffering (3)
     - video cued (5). 
     When the SWF is first loaded it will broadcast an unstarted (-1) event.
     When the video is cued and ready to play it will broadcast a video cued event (5).
  */

  if (state == 1 || state == 2) {
    alert('the "play" button *might* have been clicked');
  }

}
最后,您需要确保每当电影状态发生变化时,都会调用处理程序:

document.getElementById('MY-PLAYER-ID').addEventListener('onStateChange', 'player_state_changed');

您只需在播放器上注册一个事件侦听器,即可调用
stopSlide
函数。下面的代码行应该可以为您完成这项工作(首先,您必须用适当的值替换这两个“字符串”-嵌入式播放器的ID和要调用的函数的名称。例如:“stopSlide”):


可能会有帮助。。。根据您的要求进行编辑
我尝试使用上述建议,但没有成功。 它无法处理计时器滑块。 请看谷歌的自动滑块的例子,他们使用了视频弹出窗口。

据我所知,您无法在iframe内检测到单击,或者无法在iframe内触发任何单击事件
我的解决方案是在Iframe集合中放置一个按钮,它的属性是透明的(不透明度),在该按钮中,您可以使用playmethod和pause method调用您的单击函数,您可以启用autoplay

,因为我是一个noob:我会在js文件(或html)中放置什么代码来利用该事件?我扩展了我的答案,希望它现在会更有帮助。你这里的“我的玩家ID”是什么意思?@Serge:你的玩家元素的ID这个Q/A非常古老。现在可能有了一个新的API。这将触发每个事件的回调函数,例如提示、缓冲、播放、暂停、停止、结束。我们应该搜索什么样的“嵌入式播放器的id”?youtube视频的id或嵌入id?欢迎使用StackOverflow!如果我没弄错的话,这个视频有帮助吗?如果是的话,请在这里加上该信息的摘录?这样,如果链接失效,你的答案仍然有用。你能用那些建议无效的人的名字吗?不幸的是,在这个网站上,人们可以用许多不同的方式对答案进行排序,因此“上面”没有任何意义。太棒了。Masiha没有提到的非常关键的细节。。。
new YT.player('player',…
行中的字符串
'player'
是对嵌入YouTube视频的iFrame ID的引用。这是一个非常简洁的示例-喜欢它。感谢共享链接:)它不会提醒我。为什么?
document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");`