繁体   English   中英

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

[英]How to fire keyboard events in Javascript?

我给一个textbox一个值,然后给它一个焦点。

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

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

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

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

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

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

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

您无法使用JavaScript模拟的按键来触发浏览器按键的行为。 您只能触发自己的功能。 这意味着什么,如果您添加了一个按键事件侦听器,该事件侦听器可以检查某个按键是否被按下,然后执行某项操作,则可以触发该行为,但是例如,当您打开浏览器时,无法将其拉到“查找”栏触发ctrl + F。 那将是一个安全问题。

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

这应该可以满足您的需求: 现场演示(单击)。

<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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM