如何访问innerHTML但忽略<script>标记

约沙里亚特

我有一个通过HTML查看并替换文本的插件。但是,在我当前的实现中,脚本标记中的文本也会在搜索中被捕获。这会导致受影响页面上的脚本损坏。

var pageText = document.body.innerHTML;
document.body.innerHTML = pageText.replace(regextgoeshere);

我尽力通过正则表达式模式将其过滤掉,但是我需要弄清楚如何跳过所有标签。

有没有一种方法可以在获取innerHTML时跳过所有标签?

疯狂

也许您最好的选择是使用querySelectorAll并否定不需要的元素。然后替换textContent而不是innerHTML。通过使用innerHTML,您有破坏文档标签的风险。

这是跨浏览器的解决方案。

var matches = document.querySelectorAll("*:not(html):not(head):not(script):not(meta):not(link)");
console.log(matches);
[].forEach.call(matches, function(elem) {
  var text = ('innerText' in elem) ? 'innerText' : 'textContent';
  elem[text] = elem[text].replace("this", "works");
});

http://jsfiddle.net/m6qhuesv/

注1:HTML,HEAD,META和LINK标记不允许修改textContext。

注意2:innerText是IE专有的东西(也适用于chrome)。W3C将textContent定义为官方属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript变量中包含转义的<script> </ script>标记?

来自分类Dev

使用innerhtml访问锚标记

来自分类Dev

HTMLScriptElement与'<script>'标记

来自分类Dev

<script>标记src属性

来自分类Dev

如何在<script>标记中正确转义内联Javascript?

来自分类Dev

如何提取页面源的Script标记内的字符串

来自分类Dev

如何在PHP的<script>标记内添加Javascript

来自分类Dev

如何清除<script>标记并从特定密钥提取信息

来自分类Dev

如何在<script>标记之间过滤出对象

来自分类Dev

使用innerHTML插入内容不会执行<script>标记,这是否可以保证安全?

来自分类Dev

</ script>标记放置在错误的位置

来自分类Dev

<Script>标记内的HTML代码

来自分类Dev

在<script>标记内调用AngularJS

来自分类Dev

在<script src =“ ...”> </ script>标记内运行JavaScript?

来自分类Dev

如何标记?

来自分类Dev

标记-如何设置标记所需

来自分类Dev

忽略“ - ”标记的列的总和

来自分类Dev

如何指示笨拙的HTMLmin忽略PHP标记

来自分类Dev

grep +如何忽略许多带标记的行

来自分类Dev

如何忽略 solr 方面的标记

来自分类Dev

<script>标记在<noscript>标记内部有什么作用?

来自分类Dev

如何在inner标记内获取innerHTML,该标记仅检索内容,而不检索其中的标记?

来自分类Dev

如何从从<head>内的<script>标记加载的脚本请求中获取jqXHR对象

来自分类Dev

如何使用Beautiful Soup提取<script>标记中的字符串?

来自分类Dev

如何在节点js服务器上加载带有<script>标记的html文件?

来自分类Dev

Javascript-如何从HTML中的<script>标记中查找和获取特定值

来自分类Dev

如何使用Beautiful Soup从<script>标记内的字典中获取值

来自分类Dev

如何在MVC4 Web API中使用<script>标记设置值?

来自分类Dev

如何使用Javascript从HTML页面的<SCRIPT>标记中获取特定数据

Related 相关文章

  1. 1

    如何在JavaScript变量中包含转义的<script> </ script>标记?

  2. 2

    使用innerhtml访问锚标记

  3. 3

    HTMLScriptElement与'<script>'标记

  4. 4

    <script>标记src属性

  5. 5

    如何在<script>标记中正确转义内联Javascript?

  6. 6

    如何提取页面源的Script标记内的字符串

  7. 7

    如何在PHP的<script>标记内添加Javascript

  8. 8

    如何清除<script>标记并从特定密钥提取信息

  9. 9

    如何在<script>标记之间过滤出对象

  10. 10

    使用innerHTML插入内容不会执行<script>标记,这是否可以保证安全?

  11. 11

    </ script>标记放置在错误的位置

  12. 12

    <Script>标记内的HTML代码

  13. 13

    在<script>标记内调用AngularJS

  14. 14

    在<script src =“ ...”> </ script>标记内运行JavaScript?

  15. 15

    如何标记?

  16. 16

    标记-如何设置标记所需

  17. 17

    忽略“ - ”标记的列的总和

  18. 18

    如何指示笨拙的HTMLmin忽略PHP标记

  19. 19

    grep +如何忽略许多带标记的行

  20. 20

    如何忽略 solr 方面的标记

  21. 21

    <script>标记在<noscript>标记内部有什么作用?

  22. 22

    如何在inner标记内获取innerHTML,该标记仅检索内容,而不检索其中的标记?

  23. 23

    如何从从<head>内的<script>标记加载的脚本请求中获取jqXHR对象

  24. 24

    如何使用Beautiful Soup提取<script>标记中的字符串?

  25. 25

    如何在节点js服务器上加载带有<script>标记的html文件?

  26. 26

    Javascript-如何从HTML中的<script>标记中查找和获取特定值

  27. 27

    如何使用Beautiful Soup从<script>标记内的字典中获取值

  28. 28

    如何在MVC4 Web API中使用<script>标记设置值?

  29. 29

    如何使用Javascript从HTML页面的<SCRIPT>标记中获取特定数据

热门标签

归档