我尝试获取实际上显示在HTML文件正文中的所有文本节点。即,我要获得所有遵循innerText
规则的文本节点(<script>
,<style>
和隐藏在CSS中的文本节点除外)。我尝试将createTreeWalker
与NodeFilter.SHOW_TEXT
结合使用,以获取所有文本节点,如下所述。
let textNodeWalker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT
)
let textNodeList = []
while (textNodeWalker.nextNode()) textNodeList.push(textNodeWalker.currentNode)
但是,这将返回所有文本节点,包括那些不会在监视器上显示的文本节点。我也尝试过使用document.body.innerText
,但这不会给我DOM节点列表,而不会生成纯文本字符串。是否有可能获得所有遵循innerText
规则的文本节点(返回数组)?