gpt4 book ai didi

javascript - 对于在怪异模式父级中运行的标准模式 iframe,document.querySelector 未定义

转载 作者:行者123 更新时间:2023-11-28 02:21:08 27 4
gpt4 key购买 nike

在使用小书签运行 IE 10 时体验到这一点。当我针对以怪异模式运行的页面运行小书签并尝试使用 document.querySelector 时,document.querySelector 未定义。

为了解决这个问题,当我检测到 document.documentMode 为 5(怪异模式)时,我创建一个 iframe 并将页面内容复制到该 iframe 中以将其置于标准模式。我验证 iframe 中的文档是否处于标准模式(document.documentMode 是 8 - IE 8 标准模式),但 document.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
}

最佳答案

I used documentMode instead of simply checking (if(document.querySelector)) to help me debug this problem further

关于javascript - 对于在怪异模式父级中运行的标准模式 iframe,document.querySelector 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15649171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com