在没有实际按键的情况下调用KeyPress事件

时间:2012-05-09 10:18:04

标签: javascript keypress

只是想知道。是否可以在JavaScript中调用按键事件而无需按键?例如,我可以说,我的网页上有一个按钮,当点击该按钮时,我想调用一个事件,好像按下了某个特定的按键一样。我知道这很奇怪,但可以用JavaScript完成。

2 个答案:

答案 0 :(得分:4)

是的,可以使用initKeyEvent完成此操作。但是,使用它有点冗长。如果这困扰你,请使用jQuery,如@WojtekT的回答所示。

否则,在vanilla javascript中,这是它的工作原理:

// Create the event
var evt = document.createEvent( 'KeyboardEvent' );

// Init the options
evt.initKeyEvent(
             "keypress",        //  the kind of event
              true,             //  boolean "can it bubble?"
              true,             //  boolean "can it be cancelled?"
              null,             //  specifies the view context (usually window or null)
              false,            //  boolean "Ctrl key?"
              false,            //  boolean "Alt key?"
              false,            //  Boolean "Shift key?"
              false,            //  Boolean "Meta key?"
               9,               //  the keyCode
               0);              //  the charCode

// Dispatch the event on the element
el.dispatchEvent( evt );

答案 1 :(得分:3)

如果你正在使用jquery:

var e = jQuery.Event("keydown");
e.which = 50; //key code
$("#some_element").trigger(e);