如何在Javascript中触发键盘事件?

时间:2014-01-25 17:51:17

标签: javascript javascript-events jquery keyboard-events

我给textbox一个值,然后关注它。

document.getElementById('textbox').value="abcd";
document.getElementById('textbox').focus();

然后,我正在创建一个键盘事件并尝试触发 CTRL + A 组合键(尝试选择textbox内的文本)编写以下代码:

var myEvent = document.createEvent('KeyboardEvent');

myEvent.initKeyEvent("keypress", true, true, window, true, false, false, false, 0, 97);

document.getElementById('textbox').dispatchEvent(myEvent);

但是上面的代码没有选择文本框中的文本。

如何选择创建键盘事件的文本?

1 个答案:

答案 0 :(得分:1)

您无法使用JavaScript模拟按键触发浏览器按键行为。您只能触发自己的功能。这意味着如果你添加一个按键事件监听器来检查 a 键是否被按下然后做某事,你可以触发这种行为,但你不能让浏览器拉起来触发 ctrl + F 时,它是“查找”栏。那将是一个安全问题。

适当的方法是编写自己的函数,以便在需要时选择并触发它。

这应该可以满足您的需求: Live demo (click).

<input type="text" id="my-input" value="Some text.">

JavaScript的:

var myInput = document.getElementById('my-input');

myInput.addEventListener('click', function() {
  this.focus();
  this.select();
});

var event = new Event('click');
myInput.dispatchEvent(event);