【发布时间】:2016-02-08 09:01:06
【问题描述】:
我一直在为我的谷歌扩展的想法而苦苦挣扎,而你一如既往是我最后的希望! :))
好吧,我想点击我的 chrome 扩展上的按钮,这将导致页面扩展上的 keydown 模拟正在运行。
我认为 chrome 在我的想法上有一些安全问题,会阻止键盘模拟(使事件 isTrusted:false)并删除哪个属性。
我编写的函数在 jsfiddle 上运行良好,但似乎 chrome 扩展程序以不同的方式执行此操作。
这是内容脚本文件:
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if(request.action == "scrollToTop"){
}
else if(request.action == "scrollToBottom"){
}
else if(request.action == "enter"){
triggerKeyboardEvent(document,13);
}
function triggerKeyboardEvent(el, keyCode){
var event = new Event("keydown", {"bubbles":true, "cancelable":true});
event.which = keyCode;
el.dispatchEvent(event);
}
});
chrome.runtime.sendMessage({action : "show"});
jsFiddle 上的日志写道:
Event {isTrusted: false, which: 13}
登录网站:
document.addEventListener('keydown',function (e) {
console.log(e)
}
只写:
Event {isTrusted: false}
【问题讨论】:
-
我遇到了这个问题,我通过this 解决了
-
哇,非常感谢伙计!我更改了一些内容并将其添加为答案!
标签: javascript jquery google-chrome google-chrome-extension