Вопрос по internet-explorer-9, javascript, youtube – '__flash__removeCallback' не определено при удалении элемента DOM с помощью iframe Youtube

8

У меня есть div с YouTube видео, встроенное через iframe.

<div id="container">
    <div id="video">
        <iframe width="480" height="360" src="http://www.youtube.com/embed/LiyQ8bvLzIE" frameborder="0" allowfullscreen></iframe>
    </div>
</div>

Я изменяю содержимое #container с помощью вызова ajax

$.get(url, function(data) {
    ('#container').html(data);
}

Теперь я получаю следующую ошибку в IE9: & quot; SCRIPT5009: & quot; _flash_removeCallback & APOS; не определено & quot ;.

Я пытался удалить, удалить ... видео и / или iframe перед вызовом ajax, но это не сработало:

<script>
    $('#video').html('')
</script>

<script>
    $('#video').empty()
</script>

<script>
    $('#video').remove()
</script>

<script>
    $('#video iframe').attr('src', '')
    $('#video').empty()
</script>

<script>
    $('#video').hide()
    $('#video iframe').attr('src', '')
    $('#video').empty()
</script>

...

Но теперь я не в курсе ...

я тоже очень жду этого решения :( coolguy

Ваш Ответ

4   ответа
1

вы можете удалить iframe src, вызвав removeAttr (вместо того, чтобы пытаться установить его пустым).

$('#video iframe').removeAttr('src')
0

что используя старый «объект» Решение для IE9 / IE10 не было верным решением, потому что вам никогда не придется кодировать специально для одного браузера.

Разница в моей ситуации, мне просто нужно было всплывающее видео, а затем останавливать воспроизведение и исчезать при нажатии кнопки закрытия.

Используя предоставленный вами код ...

function playVideo() {
    $('#video iframe').attr('src', 'http://www.youtube.com/embed/VIDEO_ID_HERE');
    $('#video iframe').fadeIn();
}

function stopVideo() {
    $('#video iframe').attr('src', '');
    $('#video').fadeOut();
}
2

Я не знаю, какой язык на стороне сервера вы используете, я использую PHP. В любом случае, найдите браузер IE9 и используйте тег объекта.

if (preg_match('/MSIE 9.0/', $_SERVER['HTTP_USER_AGENT'])) { /*for IE 9.0 generate with objace tag*/ ?>
     <object type="application/x-shockwave-flash" data="VIDEO_URL">
      <param name="movie" value="VIDEO_URL" />
      </object>
 <?php } else { /*rest of all browsers,in iframe*/ ?>
      <iframe src="VIDEO_URL"></iframe>
 <?php } ?>

В короткие срокиobject тег для IE9 иiframe для отдыха.

1

Я получил решение.

ytplayer.getIframe().src='';
Чтобы это работало с видео YouTube, отображаемыми в Colorbox, добавьте следующееonCleanup функция к опциям:$(element).colorbox({ "onCleanup": function() { $(".cboxIframe").attr("src", ""); } });

Похожие вопросы