【问题标题】:'__flash__removeCallback' is undefined when deleting DOM element with Youtube iframe使用 Youtube iframe 删除 DOM 元素时未定义“__flash__removeCallback”
【发布时间】:2012-07-17 15:17:17
【问题描述】:

我有一个通过 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>

...

但现在我想不通了……

【问题讨论】:

  • 我也非常等待这个解决方案:(

标签: javascript youtube internet-explorer-9


【解决方案1】:

我收到了同样的错误并找到了自己的解决方案。我觉得对 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】:

    如果您仍想继续使用 iframe 代码,可以通过调用 removeAttr 删除 iframe src(而不是尝试将其设置为空白)。

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

    【讨论】:

      【解决方案3】:

      我找到了解决方案。

      ytplayer.getIframe().src='';
      

      【讨论】:

      • 要使此功能适用于 Colorbox 中显示的 Youtube 视频,请将以下 onCleanup 函数添加到选项中:$(element).colorbox({ "onCleanup": function() { $(".cboxIframe").attr("src", ""); } });
      【解决方案4】:

      我终于找到了解决办法。

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

      【讨论】:

        猜你喜欢
        • 2013-03-31
        • 2011-01-04
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 2022-12-31
        • 2023-03-24
        • 1970-01-01
        相关资源
        最近更新 更多