如何以编程方式从 Safari 中运行的 Javascript 代码生成按键事件?看起来 WebKit 正在使用 DOM 3 级模型从 Javascript 创建键盘事件,而 DOM 3 级键盘事件模型不支持 keypress 事件。我还有其他方法可以使用吗?
我正在寻找尽可能纯粹的 Safari/WebKit DOM 解决方案。我真的不想修改网页,也不想添加对外部库的依赖。我需要激活任何现有的按键处理程序,因此添加新的处理程序并直接调用它是行不通的。
看起来 WebKit 在其 UIEvent 类中定义了按键事件的 keyCode 和 charCode 属性,但它们是只读的。有没有办法设置这些属性?以下不起作用:
var evt = document.createEvent('UIEvents');
evt.initUIEvent('keypress', true, true, window, 0);
evt.keyCode = 114; // 'r'
evt.charCode = 114;
alert("keyCode = " + evt.keyCode + ", charCode = " + evt.charCode); // both 0
在对 initUIEvent 的调用中设置 detail 属性似乎也没有效果。