每當有人點擊嵌入式YouTube視頻上的「播放」按鈕時,我想運行一個名爲stopSlide
的功能。甚至當他們點擊任何地方嵌入式視頻內的功能運行,現在對我來說都可以正常工作。掛鉤點擊嵌入式YouTube播放器中的事件
我該怎麼做?
每當有人點擊嵌入式YouTube視頻上的「播放」按鈕時,我想運行一個名爲stopSlide
的功能。甚至當他們點擊任何地方嵌入式視頻內的功能運行,現在對我來說都可以正常工作。掛鉤點擊嵌入式YouTube播放器中的事件
我該怎麼做?
有一個YouTube JavaScript API提供事件回調。
不幸的是,沒有辦法直接檢測點擊事件(至少我沒有意識到任何)。但是,您可以檢測您可以使用的播放器狀態變化onStateChange
。
首先,你需要通過使用一個特殊的URL嵌入它能夠在播放器的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「):
document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");`
這會觸發每個事件的回調函數,如提示,緩衝區,播放,暫停,停止,結束。 – 2012-02-09 19:42:08
我們應該搜索什麼「嵌入式播放器的ID」? youtube視頻的
可能會根據您的要求 http://jsfiddle.net/masiha/4mEDR/
我試圖按照上述建議,但沒有取得成功是有幫助...編輯。 它無法處理定時器滑塊。 請參閱Google示例中的自動滑塊,他們使用彈出窗口來播放視頻。 google slider with embedded video
歡迎來到StackOverflow!如果我說得對,這個視頻有幫助嗎?如果是這樣,請您在這裏添加這些信息的摘錄?這樣,如果鏈接消失,你的答案仍然有用。 – 2012-10-23 14:48:16
您可以使用建議不起作用的人的姓名嗎?不幸的是,在這個網站上,人們可以用許多不同的方式對答案進行排序,因此「高於」沒有意義。 – 2012-10-23 14:51:12
因爲我是一個noob在這裏:我會在我的js文件(或HTML)中使用什麼代碼來利用該事件? – 2012-02-07 23:55:06
我已經擴展了我的答案,希望現在會更有幫助。 – 2012-02-08 00:50:47
這是什麼意思「MY-PLAYER-ID」? – Serge 2016-03-18 15:32:02