我在写一个油猴脚本,有一个页面会有动态生成的列表,导致在 window.onload 或者 window.addEventListener ("load" 尝试通过 document.getElementsByClassName 获取列表中的 DOM 总是 undefined 。
我猜测是这两个生命周期执行的时候,DOM 还未被加载,有什么生命周期可以让我总是能获取到这个 DOM 吗?
1
Rache1 2021 年 6 月 9 日
事件委托
|
3
pdog18 OP 谢谢,我去查一下你说的这些东西
|
4
xu2060 2021 年 6 月 9 日
动态生成元素的时候,行内绑定事件,然后把自己作为事件的参数传进去,最后去绑定的事件里面进行操作就好了。
|
5
newmlp 2021 年 6 月 9 日
|
7
pdog18 OP 我通过 mutation-observer 对 container 进行了 observer,感觉能这样先凑合用了
|
8
love 2021 年 6 月 9 日 写个油猴没必要杀鸡用牛了吧,直接 setInterval 每秒 getElementsByClassName 看看是不是 undefined,是则处理并 clearInterval
|
9
no1xsyzy 2021 年 6 月 9 日 @love 不要 setInterval,可能导致卡死,宁可反复 setTimeout
而且 mutation observer 简单封装后很方便,就是 observe(selector, callback) |
10
Baymaxbowen 2021 年 6 月 9 日
getSnapshotBeforeUpdate ?
|
11
Rhilip 2021 年 6 月 10 日 |