2

我正在尝试找到使用 initKeyboardEvent() 的基本示例。理想情况下,我想创建一个键盘事件,当用户在一个输入字段中输入时按下回车按钮,另一个输入字段将使用 jQuery 显示。有谁知道我在哪里可以找到使用 initKeyboardEvent() 的基本可理解示例?

4

2 回答 2

5

initKeyboardEvent最初是initKeyEvent,MDN 上有一个工作示例:https ://developer.mozilla.org/en-US/docs/DOM/event.initKeyEvent和这里: http: //www.howtocreate.co.uk/tutorials /javascript/domevents

我相信您可以通过网络搜索找到许多示例:“javascript initkeyevent”和“javascript initKeyboardEvent”。您可能需要测试支持以确定使用哪个。

另请注意,在DOM 4 (draft)中不推荐使用initKeyboardEvent以支持 Event 构造函数语法,在DOM 3中建议并在DOM 4 (draft)中实现。

一个简单的功能测试可能类似于:

// Test for Event constructor
if (typeof Event != 'undefined') {
  var x, evt;
  try {
    x = new Event('keyboardEvent');
  } catch(e) {
    x = void 0;
  }
}

// test to see which method to use
if (typeof x != 'undefined') {
  alert('Use Event constructor');

} else if (document.createEvent) {
  evt = document.createEvent('KeyboardEvent');

  if (evt && evt.initKeyboardEvent) {
    alert('Use initKeyboardEvent');

  } else if (evt && evt.initKeyEvent) {
    alert('Use initKeyEvent');
  }
}

但就目前而言,最好测试并使用带有initKeyEventinitKeyboardEvent的 DOM 2 createEvent

请注意,Firefox 14 似乎不支持initKeyboardEvent但确实支持Event构造函数和initKeyEvent,IE 9 则相反,不支持initKeyEventEvent构造函数,但确实支持initKeyboardEvent

于 2012-08-08T04:50:04.177 回答
4

在这里查看我的答案

简而言之:

这里跨浏览器initKeyboardEvent

Here Keyboard Event Level 3 polyfill

例子:

var a = new KeyboardEvent("keypress", {"key": 1, "char": "!", shiftKey: true})
alert(a.type + " | " + a.key + " | " + a.char + " | " + a.shiftKey)
于 2013-01-29T15:25:20.720 回答