文档.querySelector对于标准模式iframe在quirks模式父模式下运行是未定义的
document.querySelector is undefined for standards mode iframe running in quirks mode parent
在使用书签工具运行IE 10时遇到此问题。当我在一个以怪癖模式运行的页面上运行书签时,我试图使用文档。querySelector,文档。querySelector未定义
试图解决这个问题,当我检测到文档。documentMode为5 (quirks模式),我创建了一个iframe,并将页面的内容复制到该iframe中,使其处于标准模式。我验证iframe中的文档是否处于标准模式(文档。documentMode是8 (ie8标准模式)但是文档。querySelector仍然未定义。我认为documentMode必须至少为9才能支持querySelector。我不知道为什么documentMode是8而不是10,因为我在IE 10上运行。
if(goog.userAgent.IE && document.documentMode <= 5) {
// strip out any scripts from the body
s = document.body.innerHTML.replace(/<script'b[^<]*(?:(?!<'/script>)<[^<]*)*<'/script>/gi, '');
frame = goog.dom.iframe.createBlank(goog.dom.getDomHelper());
frame.scrolling = "no";
frame.allowTransparency = true;
frame.style.visibility = 'hidden';
document.body.appendChild(frame);
goog.dom.iframe.writeContent(frame, '<!doctype html>'n<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"></head><body>' + s + '</body></html>');
doc = goog.dom.getFrameContentDocument(frame);
alert(doc.documentMode); // 8 - IE 8 standards mode
alert(doc.querySelectorAll); // null
}
我使用documentMode而不是简单地检查(if(document.querySelector))来帮助我进一步调试这个问题
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 谷歌地图API v3.19在Internet Explorer Quirks模式下损坏
- AngularJS在IE9 Quirks模式下未加载
- jQuery's:隐藏选择器在IE9 Quirks模式下不工作
- 当ie以quirks模式访问时禁用站点
- IE9分配与IE Quirks模式不同的值
- 文档.querySelector对于标准模式iframe在quirks模式父模式下运行是未定义的
- IE7 Quirks模式下jQuery Ui对话框的替代方案
- 为什么 Safari 的 document.adoptNode() 在源文档处于 quirks 模式时将 css 类名转
- 在Internet Explorer中以Quirks模式加载页面 - 文档类型已注释掉