У меня есть два всплывающих поля палитры цветов, которые показывают видео 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.
из тестирования в 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;
сразу после