我正在处理一个javascript文件,当按下特定的按键时,该文件将捕获并消耗用户的按键。相反,该击键应该发送一系列击键。
到目前为止,我已经能够成功捕获并消费用户的击键。但是,我还没有能够发送相应的序列。
目标:当用户按下[ctrl + m]时,应执行[ctrl + i] [ctrl + o] [ctrl + m](无递归)
function replaceKeyEvent(evtobj) {
if(evtobj.keyCode == 73 && evtobj.ctrlKey){
window.alert("101");
}
if (evtobj.keyCode == 77 && evtobj.ctrlKey) {
evtobj.preventDefault();
window.alert("test");
/*
var evt = document.createEvent("KeyboardEvent");
evt.initKeyboardEvent();
evt.ctrlKey = true;
*/
var e = new KeyboardEvent("keypress", {
bubbles : true,
cancelable : true,
char : "I",
key : "i",
shiftKey : false,
ctrlKey : true,
keyCode : 73
});
document.dispatchEvent(e);
window.alert(e);
}
}
document.onkeydown = replaceKeyEvent;
到目前为止我只是想抓住[ctrl + m]并发送第一个keyboardevent(这是ctrl + i),并作为测试,当脚本看到ctrl + i时它应该警告101(介绍笑话)是的我知道)。
如果有人可以提供帮助,请告诉我。我一般都很擅长调度事件,更不用说javascript
了编辑:关于环境(浏览器,操作系统等)之间的交叉功能的任何注释,请指出我正确的方向 edit2:更新的代码,仍然没有工作,停止过夜