У меня есть несколько функций JavaScript, которые ведут себя как прослушиватели событий для объекта <object/>
, который запускает пользовательские события. Рассматриваемый объект — это проигрыватель YouTube с поддержкой JavaScript API. В документации приведен пример кода для подключения прослушивателя событий:
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
// note: quotes used ----------------------^---------------------^
// note: callback function defined in an arbitrary location
}
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
Однако, согласно примерам addEventListener
, которые я видел в других местах, не рекомендуется использовать кавычки. :
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
// note: callback function defined EARLIER
ytplayer.addEventListener("onStateChange", onytplayerStateChange);
}
Так какой метод правильный? Первый, казалось, работал во всех браузерах, но недавно я заметил странные проблемы, и мне интересно, связаны ли эти проблемы с тем, как вызывается addEventListener.