【发布时间】:2010-10-31 23:37:01
【问题描述】:
我正在尝试使用 JavaScript 在 Safari 中模拟键盘事件。
我试过这个:
var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);
...还有这个:
var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;
然而,在尝试了这两种方法后,我遇到了同样的问题:代码执行后,事件对象的keyCode/which 属性设置为0,而不是115。
有谁知道如何在 Safari 中可靠地创建和发送键盘事件? (如果可能的话,我宁愿用纯 JavaScript 来实现它。)
【问题讨论】:
-
您是否正在尝试执行您定义的代码或浏览器理解的某些组合键?如果它是您自己的代码,最好设置一个事件包装器,您可以通过“真实”键盘界面或其他事件生成器调用它,正如您在此处描述的那样。酌情重构。
-
在这个例子中,我试图模拟用户按下“s”。最终,我试图模拟用户在 Apple Dashboard Widget 中按下 Command-R。
-
你的代码解决了我的问题:)
-
@acidzombie24:我的荣幸! :)
标签: javascript safari webkit dom-events keyboard-events