我有一个带有通过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>
...
但现在我已经不在想了......
答案 0 :(得分: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 } ?>
简而言之,使用IE9的object
标记和休息的iframe
。
答案 1 :(得分:1)
我得到了解决方案。
ytplayer.getIframe().src='';
答案 2 :(得分:1)
如果您仍想继续使用iframe代码,可以通过调用removeAttr删除iframe src(而不是尝试将其设置为空白)。
$('#video iframe').removeAttr('src')
答案 3 :(得分: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();
}