我想在特定条件下触发Tab
键的keypress事件,但出现错误。
错误:未捕获的TypeError:event.initKeyEvent不是一个函数
码
function simulateKeyPress(element) {
console.log("Simulate")
var event = document.createEvent('KeyboardEvent'); // create a key event
// define the event
event.initKeyEvent("keypress", // typeArg,
true, // canBubbleArg,
true, // cancelableArg,
null, // viewArg, Specifies UIEvent.view. This value may be null.
false, // ctrlKeyArg,
false, // altKeyArg,
false, // shiftKeyArg,
false, // metaKeyArg,
9, // keyCodeArg,
9); // charCodeArg);
element.dispatchEvent(event);
}
function keyPress(event) {
simulateKeyPress(this);
}
(function() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener("keypress", keyPress);
}
})()
<input type="text">
<input type="text">
我一直在跟踪以下链接,以供参考,但仍然无法正常工作。
Stackoverflow-@Philip Nuzhnyy给出的答案
MDN
以下是Fiddle的链接
编辑
使用
KeyboardEvent
但仍无法触发Tab
按键事件的Updated Fiddle。另外,我不是在寻找jQuery。
提前致谢。
最佳答案
console.log(typeof (event.initKeyEvent)); // returns undefined
和MDN文档说:
此功能已从Web标准中删除。虽然有些
浏览器可能仍支持它,它正在被删除。
不要在新旧项目中使用它。使用它的页面或Web应用程序可能
随时休息。
不再使用此方法,请使用KeyboardEvent()构造函数
代替。
关于javascript - 在javascript中触发keypress事件时遇到的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33940811/