可能是 '__flash__removeCallback' is undefined when deleting DOM element with Youtube iframe 的副本
我浏览了一些网站,但找不到关于为什么 youtube 在使用 youtube iframe 删除 dom 元素时抛出此异常的确切解决方案,以及解决方案是什么?
我得到的一些解决方案是:
ytplayer.getIframe().src='';
-> 我不知道这能如何解决我的问题?
2.$('#youtube iframe').attr('src', '');
$('#youtube').remove()
-> 我已经试过了,但没有用。
3.在删除父元素之前隐藏 iframe -> 将不起作用。
请帮我解决这个问题。
最佳答案
这似乎是 IE9 独有的错误。
当 Flash 对象使用 JavaScript(Flash/ActionScript 端的 ExternalInterface)与 HTML 文档交互时,当包含带有 Flash 对象的 HTML 文档的 IFRAME 发挥作用时,它就会出现。
看到您如何指定您正在使用 YouTube API,遗憾的是您无法确保 Flash 自行注销并且在您需要删除它时不会调用 JavaScript 函数(反之亦然)在您的应用程序域之外运行的第三方软件上。
如果您不需要 YouTube API,而只是在您的应用程序中获取视频的快速方法,最安全的做法是为 IE9 使用旧式对象嵌入,为其余部分使用 API/IFRAME 嵌入理智的世界。
<object width="{WIDTH}" height="{HEIGHT}">
<embed src="https://www.youtube.com/v/{VIDEO_ID}?version=3&autoplay=1"
type="application/x-shockwave-flash"
allowscriptaccess="always"
width="{WIDTH}" height="{HEIGHT}"></embed>
</object>
删除上面的对象(顺便说一下,您可以使用 SWFObject 的“embedSWF”和“removeSWF”)将使视频播放器离开您的页面,而不会抛出任何 _flash_remove.. 警告。
如果您需要 YouTube API/控制视频播放器状态:
您是否尝试过在 ytplayer 上调用“destroy”方法?取消销毁,虽然我不愿意使用超时发布“答案”,但在将 iframe 的源设置为空字符串(因此文档卸载)之前,给 Flash 对象一些时间取消注册,然后清除 iframe 或者它是父容器。
虽然我记得在之前的一个项目中,这让我们很生气(上下文是动态添加和删除视频的单页界面),我们求助于使用 AS3 YT 代码编写我们自己的 Flash 播放器后备。这就是它的烦人之处。
关于javascript - __flash__removeCallback is undefined errors in IE9 while removed the dom element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887284/