我的页面位于 DIV 内,其中某些文本的内容可编辑。在本文中,我需要获取所有 P
元素(用户编写的文本)的值,但我需要排除所有 span 元素(未用于我必须做的其余工作的变量)。
我尝试在 IE11 中使用 querySelector 来执行此操作,但情况如下:对于 IE11,querySelector 不存在,即使我监视该元素并且它告诉我此方法存在(使用 F12 并对其进行监视)。我应该做什么来纠正这个问题?我尝试了在这个论坛上找到的一些东西,据说可以放置:
<meta http-equiv="X-UA-Compatible" content="IE=11" />
在文档的Head中,但是不起作用。
我用来执行此操作的 JS 是:
function recupTXT(div) {
var textRecup = div.cloneNode(true);
while (textRecup.querySelector("span") !== null) {
textRecup.querySelector("span").parentNode.removeChild(textRecup.querySelector("span"));
}
return textRecup.innerText;
}
编辑:
他是这样称呼的:
var text = recupTXT(document.getElementById('edth_corps'));
其中 edth_corps 是以编程方式生成的可编辑内容
如果我在相同的条件(内容可编辑和其他内容)下独立尝试它,它工作得很好并且可以满足我的需要。但在我的应用程序中它失败了。那么这只是一个配置问题吗?或者我遗漏了什么?
最佳答案
您说过文档模式是5
。
这意味着 IE 正在 Quirks 模式下运行。此模式旨在模拟 IE5,因此它会禁用自 IE5 以来发明的大部分浏览器功能,包括 querySelector
。
您可以通过阻止浏览器进入怪异模式来解决该问题。
这是通过确保 (1) HTML 有效,以及 (2) 第一行具有有效的 doctype 声明来实现的。如果您没有文档类型,请将以下内容添加到代码顶部:
<!DOCTYPE html>
关于javascript - IE11和querySelector问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34088938/