【发布时间】:2010-10-08 21:59:48
【问题描述】:
我正在尝试模拟按键事件,例如单击按钮时的 Ctrl+D。
如果有人可以为我指出如何实现相同目标的正确方向,那就太好了。
【问题讨论】:
-
您的问题真的是关于模仿按键,还是在浏览器中触发“添加书签”功能的实际目标? (提示:我的浏览器没有任何绑定到 Ctrl+D 的功能)。
标签: javascript jquery keypress
我正在尝试模拟按键事件,例如单击按钮时的 Ctrl+D。
如果有人可以为我指出如何实现相同目标的正确方向,那就太好了。
【问题讨论】:
标签: javascript jquery keypress
你不能这样做。想象一下,如果我可以随意发送 CTRL-ALT-DEL 会造成多大的破坏。
【讨论】:
触发自定义事件(本例中为Ctrl+d)的代码如下:
var evt = jQuery.Event("keypress");
evt.keyCode = 100; // d
evt.ctrlKey = true;
$(document).trigger(evt);
请注意,正如其他答案所说,这将受到限制。您将无法以这种方式影响正常的浏览器功能。
【讨论】:
这将是“触发事件”,尽管我将把练习留给你来找到正确的代码。
正如另一个人所说,你不能用它做任何事情。它是有意限制的。
但是,假设我有一个 javascript 中的所见即所得编辑器,它支持接收 ctrl+s 并保存,您应该能够自己触发并保存它。
最后,这是一个上下文(焦点)问题,有时会失败(再次,有目的地)。
【讨论】:
这将触发ctrl+d
function btnClick(){
document.dispatchEvent(new KeyboardEvent('keydown', {'key': 'd', 'ctrlKey': true}));
}
【讨论】: