Greasy Fork is available in English.
点选所有需要下载的种子然后一键复制。
< Commentaires sur 动漫花园(dmhy.org) - 批量复制磁力链接
稍微改了下:
if (document.readyState === 'complete') {
setTimeout(main, 0);
} else {
addEventListener('DOMContentLoaded', main);
}
另外你说的情况应该算是脚本管理器的 bug。如果标记了 @run-at document-start
应当在 document.readyState === 'loading'
时或之前注入脚本。
我选择判断是否为 complete
状态,则是因为 readyState
在 interactive
尚未触发 DOMContentLoaded
事件:
The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets and frames are still loading. The state indicates that the
DOMContentLoaded
event is about to fire.
参考:
应该确实是应该,但是如果用户脚本太多的话,脚本管理器也无力保证能在 在 document.readyState === 'loading' 时能来得及全部注入吧。
我这边是用了个有几十万行的全局脚本(也有 @run-at document-start),从而导致此现象。
我测试了VM和GM都能重现。
应该确实是应该,但是如果用户脚本太多的话,脚本管理器也无力保证能在 在 document.readyState === 'loading' 时能来得及全部注入吧。我这边是用了个有几十万行的全局脚本(也有 @run-at document-start),从而导致此现象。我测试了VM和GM都能重现。
那你这脚本得有多少…
之前推送的 fix 对你有用吗
有用的,谢谢修复!
也没有很多,就是这一个实在太大了 233 https://github.com/qsniyg/maxurl/blob/master/userscript.user.js
先检查 document.readyState 再用 DOMContentLoaded listener
当用户使用脚本很多时,有时候脚本启动器启动该脚本时 DOMContentLoaded 事件已经错过,导致主体功能并不会加载。可以修改部分为
参考: https://stackoverflow.com/questions/39993676/code-inside-domcontentloaded-event-not-working