Перехват события click внутри встроенного проигрывателя YouTube
Я хочу запустить функцию под названием stopSlide
, когда кто-то нажимает кнопку "играть" на встроенном видео YouTube. Или даже заставить функцию запускать, когда они нажимают где-нибудь внутри встроенного видео, будет работать отлично для меня прямо сейчас.
Как я могу это сделать?
Ответы
Ответ 1
Существует JavaScript API JavaScript, который обеспечивает обратные вызовы событий.
К сожалению, нет возможности напрямую обнаружить событие click (по крайней мере, я не знаю). Однако вы можете обнаружить изменения в состоянии плеера, для которых вы можете использовать onStateChange
.
Во-первых, вам нужно включить JS API в проигрыватель, вставив его с помощью специального URL-адреса:
http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1
Затем вам нужно создать функцию обработчика событий:
function player_state_changed(state) {
/* This event is fired whenever the player 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');
Ответ 2
Может быть полезно... редактировать согласно вашему требованию
http://jsfiddle.net/masiha/4mEDR/
Ответ 3
Я попытался использовать предложения выше, но не смог.
он не может работать с ползунком таймера.
см. пример Google для автоматического слайдера, они использовали всплывающее окно для видео.
слайдер google со встроенным видео
Ответ 4
Вам нужно просто зарегистрировать прослушиватель событий на плеере, чтобы вызвать функцию stopSlide
. Следующая строка кода должна сделать это для вас (сначала вам нужно заменить две "строки" на соответствующие значения - идентификатор встроенного проигрывателя и имя функции, которую вы хотите вызвать, например: "stopSlide" ):
document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");`
Ответ 5
Насколько мне известно, вы не можете обнаружить щелчок внутри iframe, или вы не можете вызвать любое событие щелчка внутри iframe
Мое решение состоит в том, чтобы поместить кнопку внутри Iframe, установить ее свойства прозрачными (непрозрачность), внутри этой кнопки вы можете вызвать функцию щелчка, используя метод playmethod и метод pause, вы можете включить автозапуск