javascript - 使用 JavaScript 模拟 Shift+Esc 组合

标签 javascript google-chrome google-chrome-extension

我制作了一个覆盖“新标签”页面的 Chrome 扩展。在页面上,我创建了一个可点击的图标。我想单击并出现“任务管理器”窗口。尽管我重写了与该图标关联的单击事件处理程序(通过使用 KeyboardEvent() 构造函数模拟键盘事件),但没有任何反应。这是代码:

event1=new KeyboardEvent('keypress',{
    bubbles:true,
    cancelable:true,
    shiftKey:true,
    code:'Escape',
    key:'Escape'
    });
window.dispatchEvent(event1);
return false; //Shift+Escape is Chrome shortcut for Task Manager

我做错了什么?我宁愿使用 JavaScript。

最佳答案

chrome 任务管理器是一个如此低级的功能,如果您甚至可以通过扩展代码伪造按键事件来调用它,我会感到惊讶。按键在向下的过程中被过滤......通过扩展并最终到达页面。这个特定的按键可能总是在最高级别被拦截。允许扩展或页面知道事件发生可能是不受欢迎的,并且允许事件被拦截当然也是不受欢迎的。因此,我认为 Chrome 在调用窗口之前不会监听事件冒泡备份 - 它只是执行此操作,不会转发或监听事件冒泡。

相反,您需要向 Google 请求特殊的 API 调用,以便扩展程序进行调用,由任何页面代码中的扩展程序代理(如有必要)。甚至似乎没有“chrome://tasks”。

关于javascript - 使用 JavaScript 模拟 Shift+Esc 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35302664/

相关文章:

javascript - 如何在服务器端触发器内同步读取Azure DocumentDb集合中的数据?

javascript - 具有多种宽度的元素

jquery - 文本框更改事件在 Chrome 中未触发

c# - 使用 WPF/C# 嵌入 Chromium 而不是 IE WebBrowser 控件的选项

google-chrome - 修改 Chrome 扩展中的响应 header

javascript - 我如何使用 chrome.tabs.onUpdated.addListener?

javascript - 如何使用 Chrome 扩展向 javascript 文件添加断点

javascript - Angular,按键 < 数字过滤

javascript - Vue SPA 覆盖下拉菜单

php - Laravel 5.2 Monolog 在 Chrome 控制台输出