对于单页应用怎样用油猴脚本获取文本内容?

2022-04-30 20:03:25 +08:00
 E0

在浏览器控制台使用

var web_txt = document.documentElement.innerText;
web_text;

可以完整的显示当前页面的文本内容,但是如果在油猴脚本里面使用,获取的就是页面的源代码,不是渲染后的文本内容,想要获取 SPA 应用的渲染后的文本该怎么做?

用的这个页面尝试的

1405 次点击
所在节点    问与答
5 条回复
YingJie
2022-04-30 20:09:55 +08:00
浏览器扩展不行吗?
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,
});
}
E0
2022-04-30 20:25:59 +08:00
@wdssmq 用浏览器扩展或者油猴脚本能实现吗?
kkocdko
2022-04-30 21:14:00 +08:00
2 楼都给出代码了,你试试再说呗。
就是延迟一下,等渲染完了再获取。没什么大不了的。
wdssmq
2022-05-01 12:02:39 +08:00
@E0 #3 我贴的代码就是我实际在猴子脚本里在用的。。

Mutation Observer API -- JavaScript 标准参考教程( alpha )
https://javascript.ruanyifeng.com/dom/mutationobserver.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/850248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX