javascript - notificaciones - ¿Cómo silenciar/activar el sonido de un Hangout de Google a través de JS(sin jQuery)?
hangouts (1)
Quiero escribir una extensión de Chrome que te permita silenciar / activar el silencio de tu Hangout desde un botón de acción del navegador en lugar de abrir la pestaña de Hangouts y hacerlo allí, pero parece que su HTML y JS están ofuscados, así que no puedo entender un deseo decente para dispararlo cuando se mete en la consola JS.
Pude seleccionar el elemento del botón usando
el = document.querySelector("[data-tooltip=''Unmute microphone'']");
... pero ejecutar el.click()
no hace nada. Así que traté de configurar un punto de interrupción de clic, pero eso me acaba de disparar en un gran archivo JS con un montón de código minificado, así que estoy un poco sin ideas.
Después de unos minutos de juguetear con las herramientas de desarrollo de Chrome, decidí no recorrer el código fuente con el depurador, pero estudiar el comportamiento del botón con puntos de interrupción (panel de Fuentes) y algunas conjeturas.
Para abreviar, Hangouts puede (no) silenciarse activando los siguientes eventos en el orden especificado:
-
mousedown
- Para activar el botón -
mouseup
: para activar el manejador de "clic" asociado -
mouseout
- Para quitar el anillo de enfoque del botón (opcional).
Para seleccionar el elemento de destino, no usé el selector que proporcionó, porque no funcionará para una interfaz de Hangouts localizada (que no sea en inglés). En cambio, me dirijo a la clase CSS para el icono del micrófono, y selecciono su contenedor (el botón), "ha-wPy-Xi-f".
Finalmente, use el constructor MouseEvent
(DOM4) y el método dispatchEvent
para alternar el micrófono en Hangouts:
var el = document.querySelector(''.ha-w-P-y-Xi-f'').parentNode;
el.dispatchEvent(new MouseEvent(''mousedown''));
el.dispatchEvent(new MouseEvent(''mouseup''));
el.dispatchEvent(new MouseEvent(''mouseout''));