动态加载的页面要怎么样用外部脚本修改内容?

2022-05-26 11:11:47 +08:00
 MCorMC

onload 的时候很多东西还没加载出来,直接执行达不到我需要的效果,js 只会一些基础的东西,对这种情况没什么好的思路,我现在的做法是用 setinterval 每一秒检查一次需要的东西有没有加载出来,但这样感觉效率好低,有更好的办法吗

1058 次点击
所在节点    程序员
3 条回复
iPc666
2022-05-26 11:17:56 +08:00
用 MutationObserver ,把

```js
const eleObserver = new MutationObserver((ele) => {
//判断 ele 里有你要的元素
//然后执行操作
});
eleObserver.observe(document.body, {childList: true, subtree: true});
```
wdssmq
2022-05-26 11:26:00 +08:00
// 元素变化监听
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,
});
};

可以封装一下;

wdssmq/userscript: 各种猴子脚本
https://github.com/wdssmq/userscript
cheneydog
2022-05-26 11:32:15 +08:00

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

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

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

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

© 2021 V2EX