Estaba tratando de escribir un script de Greasemonkey que se engancha al hacer onclick en un elemento específico. Aquí está el código que no funciona (parece ser ignorado en silencio, no tiene ningún efecto observable):
img = document.evaluate('//img [@title="Play / Pause"]', document.body).iterateNext() result = img.addEventListener("click", OnPlay)En un chat, obtuve una solución similar pero funcional:
Array.from(document.querySelectorAll('img[title="Play / Pause"]')).forEach(elem => elem.addEventListener("click", OnPlay))Aparte de que uno sea funcional y el otro imperativo, ¿qué hizo que uno funcionara y el otro no? La consola parece no darme pistas.
Sin embargo, solo estaba hurgando en la oscuridad que contenía la respuesta. Entonces, para que la pregunta no quede sin respuesta, agrego esto.
Aparentemente, el problema era que ambos scripts no son equivalentes, y iterateNext() solo devuelve un elemento y no varios.