Javascript 如何通过JS(无jQuery)静音/取消静音Google Hangout?

Javascript 如何通过JS(无jQuery)静音/取消静音Google Hangout?,javascript,google-chrome-extension,hangout,Javascript,Google Chrome Extension,Hangout,我想写一个Chrome扩展,让你可以通过浏览器操作按钮静音/取消静音,而不是让你打开Hangout选项卡并在那里进行操作,但是他们的HTML和JS看起来很模糊,所以我想不出一个合适的方法,在JS控制台中乱搞时触发它 我可以使用 el = document.querySelector("[data-tooltip='Unmute microphone']"); …但在上运行el.click()不会产生任何效果。所以我试着设置一个点击事件断点,但那只会让我进入一个巨大的JS文件,里面有一堆简化的代

我想写一个Chrome扩展,让你可以通过浏览器操作按钮静音/取消静音,而不是让你打开Hangout选项卡并在那里进行操作,但是他们的HTML和JS看起来很模糊,所以我想不出一个合适的方法,在JS控制台中乱搞时触发它

我可以使用

el = document.querySelector("[data-tooltip='Unmute microphone']");

…但在上运行
el.click()
不会产生任何效果。所以我试着设置一个点击事件断点,但那只会让我进入一个巨大的JS文件,里面有一堆简化的代码,所以我有点不知所措。

在摆弄了几分钟Chrome开发者工具之后,我决定不使用调试器浏览源代码,而是研究带有断点的按钮的行为(来源小组)和一些有根据的猜测

长话短说,通过按指定的顺序触发以下事件,可以(取消)静音闲逛:

  • mousedown
    -激活按钮
  • mouseup
    -触发相关的“单击”处理程序
  • mouseout
    -从按钮上卸下聚焦环(可选)
要选择目标元素,我没有使用您提供的选择器,因为它不适用于本地化(非英语)的Hangouts界面。相反,我将麦克风图标的CSS类作为目标,并选择其容器(按钮)“ha-w-p-y-Xi-f”

最后,使用(DOM4)和方法在悬挂区切换麦克风:

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'));

+感谢您使用真实的代码。非常感谢!我为此创建了userscript-