是什么让addEventListener的这两个调用不同,导致一个有效果,另一个没有



我试图编写一个Greasemonkey脚本,该脚本挂钩到特定元素的onclick。以下是不起作用的代码(似乎被默默忽略,没有可观察到的效果(:

img = document.evaluate('//img [@title="Play / Pause"]', document.body).iterateNext()
result = img.addEventListener("click", OnPlay)

在一次聊天中,我得到了一个类似但有效的解决方案:

Array.from(document.querySelectorAll('img[title="Play / Pause"]')).forEach(elem => elem.addEventListener("click", OnPlay))

除了一个是功能性的,另一个是命令性的之外,是什么让其中一个起作用,而另一个不起作用?控制台似乎没有给我任何线索。

我只是在黑暗中摸索,其中确实包含了答案。因此,这个问题不会一直没有答案,我补充了这一点。

问题显然是两个脚本不等价,iterateNext((只返回一个元素,而不返回多个元素。

相关内容

  • 没有找到相关文章

最新更新