我制作了Chrome扩展程序,该扩展程序覆盖了“新标签”'页。在页面上,我创建了一个可点击的图标。我想点击“任务管理器”'窗口出现。虽然我重写了与该图标关联的click事件处理程序(通过模拟使用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。
答案 0 :(得分:3)
chrome任务管理器是一个低级功能,如果你可以通过伪造一个按键事件甚至从扩展代码来调用它,我会感到惊讶。按键在过程中被过滤..通过扩展并最终到页面。这个特定的按键可能总是在最高级别截获。允许扩展或页面知道事件发生并且允许它被拦截肯定是不合需要的可能是不合需要的。所以我认为Chrome在调用窗口之前没有听到事件冒泡回来 - 只是这样做而且没有转发或者听它冒泡。
相反,您需要向Google请求一个特殊的API调用,以便调用扩展程序,从任何页面代码扩展代理(如有必要)。似乎没有“chrome://任务”。