我遇到的问题是,对于某些使用我的润滑脂脚本的网站,该脚本的整个代码通常或在使用以下方法后通常都无效:
window.addEventListener('DOMContentLoaded', ()=> {
// some code
});
或
window.addEventListener('load', ()=> {
// some code
});
但是,
在某些有问题的情况下,仅使用诸如以下的“野蛮”方法会使代码有效:
setTimeout( ()=>{
// some code
}, 10000);
为什么在某些情况下,DOMContentLoaded
和load
都不有效,而仅像setTimeout()
这样的“野蛮”方法才有效?
[用户wOxxOm发表了以下评论(我建议用户做出回答,但用户拒绝了--请不要投票,所有对wOxxOm的信任:]]
站点经常使用JavaScript和脚本来更新其内容通常在加载或DOMContentLoaded事件之后运行。最好用通常使用MutationObserver或其他检测手段,see Is there a JavaScript / jQuery DOM change listener?