Discussions » Development

百度云改版之后,有没有一个统一的好用的方法可以让脚本在全部页面加载完再执行

§
Posted: 2014-06-22

百度云改版之后,有没有一个统一的好用的方法可以让脚本在全部页面加载完再执行

如题,百度云改版了,经测试

@run-at document-end
$(document).ready()
在firefox,chrome下均无效


window.addEventListener('load', run, false);
$(window).load();
在firefox下能用,chrome下无效

window.onload=function(){}
似乎要加上@grant none 有一定安全问题,不能用gm的api,不能@ require
但是在firefox和chrome下均能用

等待网页全部加载完再执行脚本有个问题,就是太慢了,可能导致用户以为脚本失效。

§
Posted: 2014-06-23

$(document).ready() 是在 DOMContentLoaded 运行。

window.addEventListener('load', run, false); 在 chrome 无效,这是 Tampermonkey 的 bug,它并不在 load 运行而在 DOMContentLoaded 运行。

可选的方法很多

1、可使用 setInterval 或 setTimeout 不断循环直到找到那个对象。
2、还可使用 MutationObserver 监视器,监控对象插入后再执行代码。

Post reply

Sign in to post a reply.