IE11在Iframe下的怪癖模式-javascript错误
IE11 quirks mode under Iframe - javascript errors
我读了好几天书,一直在寻找答案,但都找不到,希望这个帖子能带来救赎:)
在我的公司里,我们有一个正在开发IE8的网络应用程序。我们正在尝试迁移到IE11。我们几乎到了,但是,我们有一个旧模块,它是在一个旧框架中编写的,该框架托管在iframe中,并以怪癖模式运行(用meta-http-equiv="X-UA-Compatible"content="IE=emulate7"或IE=5定义,我两者都试过了)。只要在IE8文档模式(通过x-ua-compatible元标记)或企业模式下呈现父/主窗口,iframe就可以正常工作。
但是,一旦我将父/主窗口更改为IE=9及以上,我就会从子iframe中得到javascript错误(超出我的能力范围)。
我知道IE11在怪癖模式下使用模拟器,而不是真正的引擎,但我在任何地方都找不到关于javascript引擎的详细信息。这是否意味着,如果父主窗口呈现为IE9及以上版本,则子iframe将使用ECMAscript 5,而不是应该使用的jscript?
我的问题有解决办法吗?谢谢大家!
从IE10开始,子模式可以与父模式不同。
请参阅此链接。上面写着。。。
IE9模式以标准模式显示子框架(因为父文档处于标准模式)。从Internet Explorer开始10,但是,子框架可以模仿怪癖模式。有关更多信息,请参阅IEBlog:IE10中的HTML5 Quirks模式。然而,为了获得最佳效果,请使用文档模式一致。
从IE9开始,框架仅限于父文档的文档,例如,如果父文档以标准模式呈现,则子框架也必须以类似方式呈现。
也许一种方法是修改内容,使您的IE9+窗口在新的父窗口中显示打开旧应用程序的链接,该窗口显示您的子框架所需的任何文档模式。
您可以使用showModelessWindow打开包含单独HTML文件的子窗口,该文件将在父文档中启动正确的文档模式。。。然后加载您正在使用的IFRAME。示例代码:
var sOptions = "scroll: no; status: no; resizable: yes;";
window.showModelessDialog("myFrameContainer.html", "", sOptions );
- Javascript,访问一个主要对象模块模式中的每个对象
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 包含圆括号的JavaScript Regex模式
- 用于操纵DOM API的Javascript设计模式
- 用javascript创建一个看起来正常分布的模式
- 揭示模块模式(JavaScript) - 这无法访问私有方法
- 匹配每个字符,直到在行首出现模式(JavaScript)
- 用于处理成功、失败、重试的异步请求的设计模式?(JavaScript)
- 模块模式javascript不是函数
- 从自定义模块模式Javascript库调用XMLHttpRequest时不会发生任何事情
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- IE11在Iframe下的怪癖模式-javascript错误
- 返回具有链接模式javascript的项
- 命令模式 JavaScript 中的执行函数
- gsp下拉值返回NaN在IE7文档模式(javascript)
- 动态模式Javascript
- 保持服务器时间,即使在离线模式(javascript/html5)
- 我如何专业地构建我的模块模式Javascript项目
- 怪癖模式 - JavaScript 不会更新表单选择选项
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数