javascript - 使用 Youtube iframe 删除 DOM 元素时未定义“__flash__removeCallback”

标签 javascript youtube internet-explorer-9

我有一个包含通过 iframe 嵌入的 Youtube 视频的 div。

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

我通过 ajax 调用更改了#container 的内容

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

现在我在 IE9 中收到以下错误:“SCRIPT5009:'_flash_removeCallback' 未定义”。

我尝试在 ajax 调用之前删除、删除...视频和/或 iframe,但这不起作用:

<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>

...

但现在我没主意了...

最佳答案

终于找到了解决方案。

我不知道您使用的是哪种服务器端语言,我使用的是 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 } ?>

简而言之,IE9 使用 object 标签,其他标签使用 iframe

关于javascript - 使用 Youtube iframe 删除 DOM 元素时未定义“__flash__removeCallback”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543888/

相关文章:

jQuery fadeIn 不适用于 IE9

javascript - 防止Android "long press"保存图片

iframe - YouTube自动播放不再起作用

facebook - 将 Youtube 视频嵌入 Facebook 并在特定时间码播放

html - 自动播放YouTube YouTube链接

html - IE9 在输入中裁剪文本

javascript - 延迟加载 javascript 以获取 Google 页面见解

javascript - Jquery切换菜单问题

javascript - 更改函数 jquery 中的全局变量值

css - Mootools .setStyle 不会更改 IE9 中的背景颜色