В вашем коде есть две ошибки, которые мешают этому работать. Как только вы внесете эти изменения, вы увидите следующий вывод над своим видео на YouTube:
5
3
1
0
Ошибки следующие:
Используйте кавычки вокруг обратного вызова или используйте анонимную функцию:
// put callback in quotes or anonymous function
myplayer.addEventListener("onStateChange", "onPlayerStateChange");
Убедитесь, что параметр соответствует локальной переменной, переданной функции журнала:
function onPlayerStateChange(newState){
log(newState); // variables are case sensitive
}
ПРИМЕЧАНИЕ. addEventListener может не работать в браузерах IE. Я использую Ubuntu и не имею IE, но вам может понадобиться использовать определение браузера, чтобы использовать attachEvent в браузерах IE. Это было проверено на Chrome 8.0.
Я также подписался на ключ jsapi. Документация была неясной, так как на одной странице Google говорилось, что для использования Google Loader требуется ключ API, а на самой странице API - нет. Вам может не потребоваться получить ключ, но если у вас все еще есть проблемы после внесения вышеуказанных изменений, я бы посоветовал вам получить ключ, чтобы исключить эту переменную в уравнении.
http://code.google.com/apis/loader/signup.html
Ресурсы:
Добавление слушателей событий YouTube
Демонстрация проигрывателя событий YouTube YouTube
ОБНОВЛЕНИЕ: Это работает в Chrome 8.0, Firefox 3.6 и IE8. Это не работает в IE7. Но вместо того, чтобы тратить энергию на мертвый браузер, сделайте одолжение сообществу и перенаправьте эти небольшие группы пользователей на ссылку обновления, чтобы они могли присоединиться к 2011 году. :) Используемая мной сборка IE7 является частью IECollections и не настоящий IE7.
Если у вас есть подмножество пользователей, которые по какой-либо причине связаны с более старыми версиями IE7, и вы хотите поддержать этих пользователей, см. javascript addEventListener onStateChange, не работающий в IE