【问题标题】:KEYPRESS Function not working as expectedKEYPRESS 功能未按预期工作
【发布时间】:2021-08-27 10:20:26
【问题描述】:

我正在尝试为 Google Meet 制作一个 chrome 扩展,当我按下空格键时,麦克风应该打开,反之亦然。这是我的代码...

//Listening to key events to trigger suitable event
document.addEventListener('keypress', (event) => {
        items = document.getElementsByTagName("div");
    if (event.keyCode == 32) {
        for (i = 0; i < items.length; i++) {
            if (items[i].hasAttribute("aria-label")) {
                if (items[i].getAttribute("aria-label")
                    .includes("microphone")) {
                    items[i].click();
                }
            }
        }
    }
});

当我按下空格键时,麦克风不会受到影响,另一方面,如果我添加警报,则效果很好。可能是什么错误?
提前致谢

【问题讨论】:

  • for 循环中的“items”是什么?
  • 对不起,我忘了添加变量声明。 Items 是保存页面上所有“div”元素的变量。

标签: javascript dom google-chrome-extension dom-manipulation


【解决方案1】:

如果我在不查看 Google Meet 源代码的情况下进行猜测,我会认为这是因为您尝试模拟的事件的 isTrusted 属性。

前段时间我被这个打败了,但我的理解是当事件被用户触发时,event.isTrustedtrue,但是当它被脚本触发时event.isTrustedfalse

在 Google Meet 源代码的某处,很可能有一个 if 语句检查此属性是否为真。例如:

if (event.isTrusted) {
  //toggle microphone
}

这样做的最可能原因是,如果用户的计算机上感染了病毒,它就无法轻易切换他们的麦克风。

【讨论】:

  • 感谢您提供的信息,但有没有办法覆盖它?!
  • 也许检查here
  • 谢谢@c1uq92,帮了大忙:)
猜你喜欢
  • 2013-08-29
  • 2020-04-28
  • 1970-01-01
  • 2012-10-07
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多