8

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

...

但现在我没主意了...

4

4 回答 4

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休息。

于 2012-10-23T10:26:42.843 回答
1

我得到了解决方案。

ytplayer.getIframe().src='';
于 2012-11-23T20:27:16.253 回答
1

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

$('#video iframe').removeAttr('src')
于 2012-12-07T22:27:17.040 回答
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();
}
于 2013-06-05T16:24:35.917 回答