Новый ответ
В объекте плеера YouTube реализован собственный метод addEventListener, который больше похож на синтаксис AS3. Согласно информации, указанной здесь :
player.addEventListener (событие: String,
Слушатель: String): Пустота
YouTube предоставляет пример на странице, на которую я ссылаюсь, и я приведу здесь:
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
YouTube также предоставляет пример страницы, которая, кажется, доказывает, что их пример кода работает в IE. Я привожу пример страницы здесь .
Теперь, вот попытка переписать соответствующие части вашего кода для работы в соответствии с примерами, предоставленными Google / YouTube:
function onYouTubePlayerReady(playerId) {
if(playerId && playerId == 'ytvideo1'){
var ytplayer = document.getElementById('ytplayer1');
} else if(playerId && playerId == 'ytvideo2'){
var ytplayer = document.getElementById("ytplayer2");
} else {
return;
}
ytplayer.addEventListener('onStateChange', 'onytplayerStateChange');
}
Итак, получается, что ошибка, которая здесь допущена, возникает из-за путаницы, вызванной использованием имени метода addEventListener. В реализации JavaScript в W3C вторым параметром является функция, а в реализации YouTube вторым параметром является строка. Дайте этому шанс =).