在浏览器控制台使用
var web_txt = document.documentElement.innerText;
web_text;
可以完整的显示当前页面的文本内容,但是如果在油猴脚本里面使用,获取的就是页面的源代码,不是渲染后的文本内容,想要获取 SPA 应用的渲染后的文本该怎么做?
1
YingJie 2022-04-30 20:09:55 +08:00 via iPhone
浏览器扩展不行吗?
|
2
wdssmq 2022-04-30 20:16:53 +08:00
正常都是弄个延迟,或者监听 #app 元素变动。。
// 元素变化监听 const fnElChange = (el, fn = () => { }) => { const observer = new MutationObserver((mutationRecord, mutationObserver) => { // _log('body attributes changed!!!'); // body attributes changed!!! // _log('mutationRecord = ', mutationRecord); // [MutationRecord] // _log('mutationObserver === observer', mutationObserver === observer); // true fn(mutationRecord, mutationObserver); // mutationObserver.disconnect(); }); observer.observe(el, { // attributes: false, // attributeFilter: ["class"], childList: true, // characterData: false, subtree: true, }); } |
4
kkocdko 2022-04-30 21:14:00 +08:00
2 楼都给出代码了,你试试再说呗。
就是延迟一下,等渲染完了再获取。没什么大不了的。 |
5
wdssmq 2022-05-01 12:02:39 +08:00
@E0 #3 我贴的代码就是我实际在猴子脚本里在用的。。
Mutation Observer API -- JavaScript 标准参考教程( alpha ) https://javascript.ruanyifeng.com/dom/mutationobserver.html |