Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE9“;Can';t从释放的脚本执行代码";调用hasOwnProperty()时_Javascript_Security_Internet Explorer 9 - Fatal编程技术网

Javascript IE9“;Can';t从释放的脚本执行代码";调用hasOwnProperty()时

Javascript IE9“;Can';t从释放的脚本执行代码";调用hasOwnProperty()时,javascript,security,internet-explorer-9,Javascript,Security,Internet Explorer 9,以下是场景: 我有一个容器页面,可以交换iFrame以显示不同的内容。所有iFrame都来自同一个域。已启用https 容器页面有一个名为Flow的对象,其函数为set/getParameter 第一个iFrame s0 welcome创建一个对象、数据并调用Flow.setParameter('data',data') 然后,容器用第二个iFrame s1 transfer替换第一个iFrame s1传输调用Flow.getParameter('data')并将其存储在局部变量s1data中

以下是场景:

我有一个容器页面,可以交换iFrame以显示不同的内容。所有iFrame都来自同一个域。已启用https

  • 容器页面有一个名为Flow的对象,其函数为set/getParameter
  • 第一个iFrame s0 welcome创建一个对象、数据并调用Flow.setParameter('data',data')
  • 然后,容器用第二个iFrame s1 transfer替换第一个iFrame
  • s1传输调用Flow.getParameter('data')并将其存储在局部变量s1data中
在IE9调试工具控制台中,如果我键入s1data,它将显示该对象的所有属性。但是,如果调用s1data.hasOwnProperty('prop1'),则会出现“无法从释放的脚本执行代码”错误。如果我调用Object.prototype.hasOwnProperty.call(s1data,“prop1”),一切正常

在我看来,有两种可能:

1) 容器页面保留来自第一个iFrame的引用,但是当第一个iFrame被释放时,它会丢失一些数据。这似乎不太可能,因为我唯一不能访问的是函数

2) 存在一个安全限制,即不允许一个iFrame运行与另一个iFrame相关的代码,即使两个iFrame来自同一个域


有什么想法吗?

刚刚遇到了类似的问题。对我来说,只需将
s1data.hasOwnProperty('prop1')
更改为
('prop'ins1data)
,错误就消失了。

也遇到了类似的问题。对我来说,只需将
s1data.hasOwnProperty('prop1')
更改为
('prop'在s1data中)
就可以消除错误。

这在其他浏览器(包括IE6-IE8)中都可以正常工作。这就像在其他浏览器(包括IE6-IE8)中可以正常工作一样