我想编写一个 Chrome 扩展程序,让您可以通过浏览器操作按钮将环聊静音/取消静音,而不是让您打开环聊选项卡并在那里执行此操作,但看起来他们的 HTML 和 JS 被混淆了,所以我可以'在 JS 控制台中乱七八糟时,想不出触发它的好方法。
我能够使用
选择按钮元素本身el = document.querySelector("[data-tooltip='Unmute microphone']");
...但是在上面运行 el.click()
不会执行任何操作。所以我尝试设置一个点击事件断点,但这只是让我进入一个巨大的 JS 文件,里面有一堆缩小的代码,所以我有点不知所措。
最佳答案
在 Chrome 开发人员工具上摆弄了几分钟之后,我决定不使用调试器遍历源代码,而是研究带有断点的按钮的行为(源代码面板),并且一些有根据的猜测。
长话短说,可以通过按指定顺序触发以下事件来(取消)静音环聊:
mousedown
- 激活按钮mouseup
- 触发关联的“点击”处理程序mouseout
- 从按钮上移除对焦环(可选)。
为了选择目标元素,我没有使用您提供的选择器,因为它不适用于本地化(非英语)环聊界面。相反,我将 CSS 类作为麦克风图标的目标,并选择其容器(按钮)“ha-w-P-y-Xi-f”。
最后,使用 MouseEvent
constructor (DOM4) 和 dispatchEvent
在环聊中切换麦克风的方法:
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'));
关于javascript - 如何通过 JS(无 jQuery)使 Google Hangout 静音/取消静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241127/