Javascript 遍历DOM和替换文本的最佳方法

Javascript 遍历DOM和替换文本的最佳方法,javascript,html,content-script,dom-traversal,Javascript,Html,Content Script,Dom Traversal,这是一个有点开放性的问题,但我希望有人能帮助我。这就是我要做的 我正在编写一个浏览器扩展,它解析页面的所有HTML,调用API,等待响应,然后用API响应中的文本替换页面上的所有文本,而不更改页面的格式 我尝试了几种不同的方法来解析页面的HTML- 抓取document.body.getElementsByTagName(“*”),然后尝试一次处理其中一些元素。缺点是,我最终得到了一个包含父元素和子元素的页面所有元素的列表,因此我在同一个元素上调用了两次API 抓取document.body.c

这是一个有点开放性的问题,但我希望有人能帮助我。这就是我要做的

我正在编写一个浏览器扩展,它解析页面的所有HTML,调用API,等待响应,然后用API响应中的文本替换页面上的所有文本,而不更改页面的格式

我尝试了几种不同的方法来解析页面的HTML-

  • 抓取document.body.getElementsByTagName(“*”),然后尝试一次处理其中一些元素。缺点是,我最终得到了一个包含父元素和子元素的页面所有元素的列表,因此我在同一个元素上调用了两次API

  • 抓取document.body.childnodes,然后沿着每个子节点向下移动。这不起作用,因为有些子节点往往太大,最终会溢出API


  • 因此,我的开放式问题是——如果您必须遍历web上任何页面的DOM,并用另一个文本块替换所有文本,那么最好的方法是什么?

    您可能必须使用javascript编写自己的函数,以进入并获取感兴趣的每个文本元素

    您以前使用过jquery吗?它是基于javascript构建的。这会让你更容易进入并抓住你感兴趣的“文本”

    “.text()”可能就是您要查找的内容,如果您选择jquery路径:

    var innerTxt=$('#elementWithText').text();
    $('span').text(innerTxt)
    
    
    你好,你好吗


    上段案文如下:


    您可以使用它来更新dom并提高性能。

    举个例子。因为一个简单的文本更改不需要像DOM遍历这样复杂的东西。答案在很大程度上取决于您忽略的细节。页面的格式/布局是什么?API结果的结构是什么?举个具体的例子!您可能不想用其他内容替换每个网站上的所有文本。这不会有用,还是会有用?
    $.text()
    也会返回所有嵌套元素的文本。不确定这是否是一个问题,但这是一个值得考虑的问题。