Estamos trabajando en una extensión de Chrome de código abierto: Digital Assistant Client
Demostración del producto:
Parte 1: https://www.youtube.com/watch?v=Iz2WgKY0fhc
Parte 2: https://www.youtube.com/watch?v=i0_MNfBnYfM
Estamos teniendo problemas para ejecutar nuestro controlador de eventos onclick cuando la página se navega a otra página.
Quiero invocar todos los controladores de eventos onclick adjuntos a un domnode en el que el usuario ha hecho clic antes de que la página navegue a otra página para que nuestra funcionalidad se ejecute. La solución debería funcionar para cualquier marco que cancele el burbujeo de los controladores de eventos onclick.
Hay algunas preguntas ya planteadas por algunas personas como se indica a continuación
Gracias por adelantado
Probablemente pueda agregar un parche de mono a AddEventListener en el nodo DOM, capturar los controladores de eventos que se registran más tarde y mantener una lista de ellos.
const originalEventListener = DOMNode.addEventListener; DOMNode.addEventListener = (type, callback) => { const clicksHandler = []; if(type === 'click'){ clicksHandler.push(callback); originalEventListener.call(DOMNode, type, callback); } } Probablemente pueda usar el evento beforeunload para asegurarse de que todos los clicksHandler se llamen una vez más antes de que el usuario se aleje.
window.onbeforeunload = (e) => { clickHandler.forEach((handler) => handler.call(...)) }solo tiene que llamar al evento en ese elemento.
const button1 = document.getElementBy.... button1.click()agregue alerta antes de la navegación dentro del método de clic, para que la alerta le notifique.