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