在iframe中加载脚本时,IE9会抛出异常.为什么?

Eug*_*hok 27 javascript model-view-controller asp.net-mvc iframe internet-explorer-9

前提:

我有一个内置iframe的aspx页面.这个iframe指向MVC在同一站点(它的混合站点,标准ASP.NET和ASP.NET MVC)处理的url.由MVC呈现的结果页面包含许多脚本引用.

问题:

IE9在iframe中加载的每个脚本上抛出一个异常.这些例外与此类似:

Error: 'Function' is undefined
Run Code Online (Sandbox Code Playgroud)

也就是说,它说每个窗口最基本的东西都不存在.一旦您点击了所有这些弹出窗口,页面就会按设计工作!
如果我<iframe />直接从浏览器中的src属性加载URL ,一切都按预期工作.
如果我在另一个浏览器中打开页面(我试过Opera,Firefox),一切都按预期工作 - 没有错误.

那么,IE9想要什么?

cop*_*opy 28

这个MSDN网页有关这个错误(或功能).

在DOM中移动iframe元素时会出现这些错误.在这种情况下,IE 9垃圾收集iframe(导致你的未定义的bug)并在另一个位置重新加载它.

在一般情况下,你应该创建元素,设置其src属性只有一次,然后把它放在某处DOM树一次.它与在iframe中运行的代码无关.