我想在特定条件下触发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/

10-10 17:09
查看更多