javascript - __flash__removeCallback is undefined errors in IE9 while removed the dom element

标签 javascript jquery html youtube internet-explorer-9

可能是 '__flash__removeCallback' is undefined when deleting DOM element with Youtube iframe 的副本

我浏览了一些网站,但找不到关于为什么 youtube 在使用 youtube iframe 删除 dom 元素时抛出此异常的确切解决方案,以及解决方案是什么?

我得到的一些解决方案是:

  1. 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/

相关文章:

Javascript 从本地文件解析 xml

javascript - 在键值对中如何打印出一个不为空的值 JavaScript

javascript - 固定定位的 Div 在另一个 Div 中

javascript - 如何使用 in-view.js 检测元素何时滚动到视口(viewport)中

javascript - Ajax 调用在 IE 和 Chrome 中有效(并且仅在 Firefox 中在 ajax 调用结束时在 Debug模式下添加断点时有效)

javascript - 有没有办法从两个标签之间提取文本,并以我选择的格式输出?

java - 无法从jsp重定向到html

javascript - 在元素单击上使用 jquery 更改 html 文本的 id 和类

jquery - 使用 Ajax 时清除 select2 下拉列表的正确方法是什么?

javascript - 如何从 Codepen 获取代码并在本地使用?