javascript - IE11和querySelector问题

标签 javascript internet-explorer

我的页面位于 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/

相关文章:

javascript - 从 javascript 文件启动 Microsoft Edge 浏览器?

jquery - Internet Explorer 中 jQuery UI Explode 的奇怪行为

html - 消失的 HTML dingbat 实体

javascript - 原型(prototype)继承调用构造函数两次

javascript - Angular 通用 : avoid restarting CSS animations at DOM replacement

php - 市场上有成熟的 php 和 javascript 解析器生成器吗?

html - css 对齐在 ie7 中中断但在其他地方有效

javascript - 为什么我的选择标签在 Firefox 和 IE 中无法正确显示?

javascript - 将 JSON 对象格式化为对象数组

JavaScript 回调值未正确传递