KEYPRESS 功能未按预期工作
Posted
技术标签:
【中文标题】KEYPRESS 功能未按预期工作【英文标题】:KEYPRESS Function not working as expected 【发布时间】: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”元素的变量。 【参考方案1】:如果我在不查看 Google Meet 源代码的情况下进行猜测,我会认为这是因为您尝试模拟的事件的 isTrusted
属性。
前段时间我被这个打败了,但我的理解是当事件被用户触发时,event.isTrusted
是true
,但是当它被脚本触发时event.isTrusted
是false
在 Google Meet 源代码的某处,很可能有一个 if
语句检查此属性是否为真。例如:
if (event.isTrusted)
//toggle microphone
这样做的最可能原因是,如果用户的计算机上感染了病毒,它就无法轻易切换他们的麦克风。
【讨论】:
感谢您提供的信息,但有没有办法覆盖它?! 也许检查here 谢谢@c1uq92,帮了大忙:)以上是关于KEYPRESS 功能未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
keypress/keyup 在 chrome 移动浏览器上不起作用