javascript addEventListener onStateChange, не работающий в IE

У меня есть два всплывающих поля палитры цветов, которые показывают видео YouTube в каждом. Когда они закончены, играя, я пытаюсь иметь их, автоматически закрывают окно палитры цветов. Этот код ниже работ, прекрасных в Firefox, но в IE, я не могу заставить addEventListener работать. Я попробовал attachEvent без успеха. Кто-либо может предложить какие-либо предложения относительно того, как решить это? Это кажется простым, но я исчерпываюсь, пытаясь найти решение. Между прочим, это - мой первый раз в stackoverflow, и это является очень впечатляющим.

ОБНОВЛЕНИЕ 1:

Ну, это - мой текущий код. Это работает прекрасное в FF, но IE только хорошие выводы. Отладчик IE8 не сообщает ни о каких ошибках также...

function onYouTubePlayerReady(playerId) {
  if (playerId && playerId != 'undefined') {
    if(playerId && playerId == 'ytvideo1'){
      var ytswf = document.getElementById('ytplayer1');
      alert('good');
    } else if(playerId && playerId == 'ytvideo2'){
      var ytswf = document.getElementById('ytplayer2');
    } else {
    }

    setInterval('', 1000);
    ytswf.addEventListener('onStateChange', 'onytplayerStateChange');
    alert('great');
  }
}


function onytplayerStateChange(newState) {
  alert('amazing');
  if(newState == 0){
    $.fn.colorbox.close();
    alert('perfect');
  }
}

Обновление 3: решение

Просто помещенный onComplete в моей палитре цветов и помещенный swfobject в это и это работало отлично в IE.

5
задан 15 revs, 2 users 99% 30 July 2010 в 07:46
поделиться

3 ответа

из тестирования в IE похоже, что ссылка, которую вы используете

ytswf = document.getElementById('ytplayer1');

, назначается до загрузки фактического объекта swf, поэтому IE думает, что вы имеете в виду простой элемент div

, вам нужно запустить этот код

function onYouTubePlayerReady(playerId) {
  ytswf = document.getElementById("ytplayer1");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}

сразу после вызова

swfobject.embedSWF("http://www.youtube.com/v/SPWU-EiulRY?
hl=en_US&hd=0&rel=0&fs=1&autoplay=1&enablejsapi=1&playerapiid=ytvideo1",
"popupVideoContainer1", "853", "505", "8", null, null, params, atts);

перед закрытием $ (function ()

и помещением var ytswf; сразу после