Javascript 在IE中关闭Iframe时出错

Javascript 在IE中关闭Iframe时出错,javascript,jquery,iframe,highslide,Javascript,Jquery,Iframe,Highslide,制作一个包含视频的站点,该视频位于使用Highslide打开的Iframe中。除了在IE中,这一切都非常有效。当我关闭Highslide(并删除其中的Iframe)时,我会收到以下错误消息: SCRIPT5007: Unable to get property 'random' of undefined or null reference File: jquery.min.js, Line: 2, Column: 1711 SCRIPT5009: 'jQuery' is undefined F

制作一个包含视频的站点,该视频位于使用Highslide打开的Iframe中。除了在IE中,这一切都非常有效。当我关闭Highslide(并删除其中的Iframe)时,我会收到以下错误消息:

SCRIPT5007: Unable to get property 'random' of undefined or null reference
File: jquery.min.js, Line: 2, Column: 1711

SCRIPT5009: 'jQuery' is undefined
File: flowplayer.min.js, Line: 6, Column: 1

SCRIPT5009: 'flowplayer' is undefined
File: index.php, Line: 20, Column: 4
有时我会重复出现以下错误:

SCRIPT445: Object doesn't support this action
File: jquery.min.js, Line: 2, Column: 4058

如果我在错误发生后立即重新打开完全相同的Highslide Iframe,它将正常打开,没有任何问题,但在关闭时仍有错误。我真的很困惑该怎么做才能解决这个问题。

highslide full.js
文件(版本4.1.12)中,在
afterClose
函数(第2926行附近)中,您应该会发现:

if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
在该行之后立即添加以下内容:

if (this.iframe) {
  this.body.removeChild(this.iframe);
}

我们已经用额外的代码解决了IE9的关闭问题。

听起来你遇到的似乎是IE的一个奇怪的角落错误。基本上,如果一个iframe在另一个元素中,在某些情况下,当该元素被销毁时,iframe中的脚本将再次运行,这一次没有上下文-像
对象
数学
这样的东西就消失了

因为这些脚本是在已销毁的iframe上运行的,所以我发现这些错误通常是无害的,但我仍然不喜欢它们

我发现IE和jQuery(1.11.0)之间的交互似乎导致了这种情况。首先尝试使用纯DOM调用清空包含iframe的元素:

                // Instead of:
                //$('div').empty();

                // Run this:
                var div = $('div')[0];
                while (div.firstChild) {
                    div.removeChild(div.firstChild);
                }

不知道为什么会这样,或者甚至不知道它在大多数情况下是否有效(它在我的沙盒中有效,但在实际代码中无效),也不想进一步诊断IE的奇怪疾病,但它有时似乎可以消除错误,并且基本上是以相同的方式工作的

“关闭iframe”是什么意思?您可以创建/删除它们,可以显示/隐藏它们,可以更改它们的src,但绝对不能打开或关闭它们。另外,IE11和jQuery<1.11.0是一个不起作用的组合。对不起,我想这有点含糊不清。我的意思是,当我关闭Highslide弹出窗口时,其设置为删除其内容,从而有效地“关闭”所讨论的iframe。另外,我刚刚检查并正在运行jquery 1.11.1。请给我们一个指向您页面的链接。人们为什么这样做?为什么在没有提供实例的情况下发布问题?别告诉我们-让我们看看!问题在于脚本,而不是highslide。请参阅此库中的错误无错误。