Javascript 如何获取整个文档的文本内容?

Javascript 如何获取整个文档的文本内容?,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我正在构建Chrome扩展,它在某个时候会决定当前的页面语言。为了做到这一点,我的计划是提取页面的文本内容(或至少部分内容),并将其传递给翻译api。然而,我找不到任何直接的方法来获取文档的所有textNodes 有一个备份计划是递归地分析$('body').contents(),直到有足够的文本内容,但它感觉有点不稳定。也许有更好的办法 注意:Chrome extensions api允许脚本访问用户页面dom,就像它是dom的一部分一样。使用 没有jQuery,同样简单:document.

我正在构建Chrome扩展,它在某个时候会决定当前的页面语言。为了做到这一点,我的计划是提取页面的文本内容(或至少部分内容),并将其传递给翻译api。然而,我找不到任何直接的方法来获取文档的所有
textNode
s

有一个备份计划是递归地分析
$('body').contents()
,直到有足够的文本内容,但它感觉有点不稳定。也许有更好的办法


注意:Chrome extensions api允许脚本访问用户页面dom,就像它是dom的一部分一样。

使用


没有jQuery,同样简单:
document.body.innerText

Javascript:

document.body.textContent
您可以使用。

VanillaJS:

document.body.outerHTML

使用chrome在控制台中尝试时,所有这些方法都返回undefined

var text = document.body.textContent;
var text = document.body.outerHTML;
var text = document.body.innerText;

等等…

在chrome扩展开发中有没有办法使用python可执行文件?如果是这样,您可以使用
sgmllib
模块中的
SGMLParser
来实现这一点!不太清楚如何使用JS来实现这一点你如何处理页面的完整html???innerText仅适用于IE,document.body.textContent其他根据PPK,两者或多或少都是跨浏览器的(Firefox中没有innerText,IE中没有textContent),但它们有所不同:innerText现在在所有浏览器中都实现了。它很好用,我推荐它。看见许多教程仍然过时,并提到其缺乏兼容性,但,不再!很抱歉吹毛求疵,但您需要:
$('body').text()
对于我来说,在2021年的Chrome上,这不仅仅是文本。例如,在wikipedia上快速测试,除了页面上的文本外,还可以提取大量CSS和代码<但是,code>document.body.innerText
工作得很好。以下是有关
innerText
textContent
的一些信息及其区别:,语句本身,
var text=document.body.innerText
将返回undefined,就像语句
vari=5一样将返回未定义的。只需在控制台中键入
document.body.innerText
,您就会看到输出。
var text = document.body.textContent;
var text = document.body.outerHTML;
var text = document.body.innerText;