【问题标题】:How to mute/unmute a Google Hangout via JS (no jQuery)?如何通过 JS(无 jQuery)将 Google Hangout 静音/取消静音?
【发布时间】:2013-06-21 17:33:43
【问题描述】:

我想编写一个 Chrome 扩展程序,让您可以通过浏览器操作按钮将环聊静音/取消静音,而不是让您打开环聊标签并在那里执行此操作,但似乎他们的 HTML 和 JS 被混淆了,所以我可以'在 JS 控制台中乱搞时,想不出一个像样的想要触发它。

我能够使用

选择按钮元素本身
el = document.querySelector("[data-tooltip='Unmute microphone']");

...但是在上面运行el.click() 并没有做任何事情。所以我尝试设置一个点击事件断点,但这只是让我进入一个带有一堆缩小代码的巨大 JS 文件,所以我有点没有想法。

【问题讨论】:

  • +1 使用真实代码。

标签: javascript google-chrome-extension hangout


【解决方案1】:

在使用 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'));

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多