是否可以使用 Javascript/JQuery 在 DOM 窗口上触发密钥事件?
Is it possible to trigger a key event on the DOM Window with Javascript/JQuery
是否可以在javascript中的DOMWindow或DOMDocument上触发密钥事件?基本上,我正在创建一个浏览器扩展程序来与网站交互,并且它们具有执行特定操作的快捷方式Key Events(类似于GMail(。我发现了其他关于如何正确触发按键事件的帖子(使用 jQuery 触发按键事件的最终方法(,但在将按键事件发送到文档/窗口时它们似乎不起作用。
到目前为止,我已经尝试过:
var evt = document.createEvent("KeyboardEvent");
evt.initKeyboardEvent("keydown", true, true, window, false, false, false, false, 0, "o".charCodeAt(0))
window.document.dispatchEvent(evt);
和一个jQuery实现:
$(document).trigger({ type: 'keydown', which: "0".charCodeAt(0) });
我也尝试连续进行"键下","按键"和"键升",但也没有用。
任何帮助将不胜感激!
提前谢谢。
我知道您在使用trigger()
时可以传递额外的参数,但我不确定是否可以覆盖event
对象的属性。不过,您可以像这样传递数据:
$(document).on('keydown keyup keypress', function (event, characterCode) {
if (typeof(characterCode) == 'undefined') {
characterCode = -1;
}
console.log('type = ' + event.type);
console.log('characterCode = ' + characterCode);
});
这将是trigger()
代码:
$(document).trigger('keydown', [ "0".charCodeAt(0) ]);
这是一个演示:http://jsfiddle.net/A7cEE/(注意控制台的日志(
您提供的堆栈溢出答案中的代码似乎工作正常:
要捕获:
$(document).on('keydown', function (event) {
console.log('type = ' + event.type);
console.log('keyCode = ' + event.keyCode);
});
要触发:
var e = jQuery.Event('keydown');
e.keyCode = "0".charCodeAt(0);
$(document).trigger(e);
演示:http://jsfiddle.net/A7cEE/1/
请注意,.on()
是 jQuery 1.7 中的新功能,在本例中与.bind()
相同。
试试这个:
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent ("keydown", true, true, window, false, false, false, false, 0, "o".charCodeAt(0))
window.document.dispatchEvent(evt);
语法:
event.initKeyEvent (type, bubbles, cancelable, viewArg,
ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
keyCodeArg, charCodeArg)
使用"initKeyEvent"而不是"initKeyboardEvent"。
//::jQuery::
//press "L" or "l" to open Bootstrap Login Modal Form
$(document).keypress(function(evt){
if (evt.charCode === 108 || evt.charCode == 76) {
$('#login-modal')
.modal('bs.modal.shown');
}
});
祝你好运。
相关文章:
- API密钥使用和检查示例
- react.js中的密钥绑定
- JS对象密钥序列
- 似乎无法使用javascript从AWS 3S中删除密钥
- 加载两个具有相同父密钥名称的json文件
- 如何获取$data.Entity的密钥
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- CryptoJS和密钥/IV长度
- 基于api密钥的NodeJS web服务
- 输入密钥和firefox提示
- React Rails应用程序中动态子项的密钥分配问题
- 正在Javascript Cookie中设置重复密钥
- 通过localStorage中的密钥获取ID
- 从密钥中获取价值.JavaScript
- 如何在 Windows Mobile 5 浏览器中检测 JavaScript 密钥事件
- 哪些浏览器使用哪个密钥事件系统
- Safari中没有密钥设置事件
- Javascript密钥事件-只有当它是重复的密钥事件时才退出
- 如何将字符映射到IE/Mozzilla密钥码,以便与Javascript密钥设置事件一起使用
- 是否可以使用 Javascript/JQuery 在 DOM 窗口上触发密钥事件?