[求助] 关于油猴脚本加载的问题!

2021-05-05 19:49:58 +08:00
 maloneleo88
加了 window.load 网页的子页面就卡住不继续加载了
不加 window.load 脚本就无法生效。(我猜测是子页面还没加载出来,脚本已经执行完了)

有啥子办法吗?

那种单页面的直接 window.onload=function(){}就可以。。 这种异步页面的应该怎么搞? #挠头
2537 次点击
所在节点    JavaScript
11 条回复
xiaoming1992
2021-05-05 20:43:16 +08:00
我怎么听不太懂?子页面是什么?怎么卡住?。。。
maloneleo88
2021-05-05 21:28:16 +08:00
@xiaoming1992 我外行,应该怎么形容呢。http://zq.win007.com/cn/subleague.aspx?sclassid=60

就是这种页面的 tbody 里的内容。 我用油猴 写入 window.onload=function(){}后 tbody 里的内容就永远在加载中
maloneleo88
2021-05-05 21:33:29 +08:00
这应该是 js 动态生成的动态页面吧,怎么才能等这个 js 执行完了再执行我油猴里的脚本
dream4ever
2021-05-05 22:16:20 +08:00
@maloneleo88 最简单粗暴的方式,用 setTimeout 不断查询指定元素,有你需要的内容了,再执行具体脚本。
xiaoming1992
2021-05-05 23:07:23 +08:00
估计他的页面也是用的 window.onload, 所以你的 window.onload 把他的 onload 替换了。。。可以试试用 addEventListener
maloneleo88
2021-05-06 00:48:31 +08:00
@dream4ever
@xiaoming1992

谢谢,我试一下, 又有问题了。
maloneleo88
2021-05-06 02:22:31 +08:00
@xiaoming1992
@dream4ever

用三秒大法暂时对付了,老板们谁能贴个监听元素的代码呀。 因为动态页一刷新就没用了,暂时放了个调用函数的按钮。 如果能监听元素的话就好了,内容更新直接调用脚本
kid740246048
2021-05-06 03:03:14 +08:00
```
window.addEventListener('load', ()=>{console.log('ready')})
```
这样不就行了
Puteulanus
2021-05-06 10:47:44 +08:00
监听元素可以用 MutationObserver
512357301
2021-05-06 10:56:32 +08:00
@maloneleo88

这是我用的代码:

window.onload = setTimeout(click_item,500);

function click_item(){
if(document.querySelector('.xxx')){
//你的代码

}else{

//继续等待
setTimeout(click_item,300) //300 毫秒
}
}
maloneleo88
2021-05-08 18:29:39 +08:00
@512357301 onload 肯定是不行的。 我也不知道咋回事 , 加了界面就刷不全, 现在就用延迟 3 秒。还行 比较稳定

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

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

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

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

© 2021 V2EX