javascript - 用 jQuery 替换 DOM 中出现的所有文本

标签 javascript jquery google-chrome-extension

我正在尝试编写一个 Chrome 扩展程序,以用自定义文本替换网页中所有特定出现的文本。

我在 SO 中发现了类似的问题,并尝试了以下解决方案,但它似乎不起作用。

   config.text_config = [
        {
            src: "Lorem ipsum",
            target: "live long and prosper"
        }
    ]
   config.text_config.forEach(function (obj) {

        $('*').each(function () {
            var text = $(this).text().replace(obj.src, 'REPLACEMENT_TEXT');
            $(this).text(text);
        })

    });

有人可以帮我一下吗?

最佳答案

您可以执行类似的操作,以确保替换所有节点的文本:

$(function () {
  $.fn.getTextNodes = function(contentText) {
    return $(this).find(":not(iframe)").addBack().contents().filter(function() {
      return this.nodeType == 3 && this.nodeValue.indexOf(contentText) != -1;
    });
  };
  var config = {}
  config.text_config = [
    {
      src: "Lorem ipsum",
      target: "live long and prosper"
    }
  ];
  config.text_config.forEach(function (obj) {
    var re = new RegExp(obj.src, 'g');
    $('*').getTextNodes(obj.src).each(function(item, element) {
      this.nodeValue = this.nodeValue.replace(re, 'REPLACEMENT_TEXT');
    });
  });
});
<script src="//code.jquery.com/jquery-1.11.3.js"></script>


<div id="Message area">
    <div class="selected-div">
        Operation Lorem ipsum Lorem ipsum 1
    </div>
    <div class="selected-div">
        Operation Lorem ipsum Lorem ipsum 2
    </div>
    <div class="selected-div">
        Operation Lorem ipsum Lorem ipsum 3
    </div>
    <div class="selected-div">
        Operation Lorem ipsum Lorem ipsum4
    </div>
</div>

关于javascript - 用 jQuery 替换 DOM 中出现的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556960/

相关文章:

javascript - HTML 页面加载缓慢,除非我省略三个链接的静态文件之一

javascript - 如果 React 中不存在 JSON 键,如何隐藏 HTML 元素

Javascript - 如何从右键单击获取图像 URL

javascript - 如何知道当前环境是 chrome 扩展中的 content.js 还是 background.js

javascript - 如何通过 postMessage 或任何类似函数传递文件对象

javascript - Service Worker app-shell PHP 实现

javascript - jQuery:事件监听器没有被触发

jquery - 当值包含变音符号时,IE11 触发输入事件

javascript - 如何确定脚本是否已从 Chrome 扩展程序注入(inject)到文档中

javascript - 根据条件将单元格值从一张谷歌工作表复制到另一张谷歌工作表