如何在Javascript中模拟多个按键?

时间:2015-07-20 16:25:34

标签: javascript jquery html javascript-events

我正尝试通过点击链接启动浏览器搜索。

我发现有一些功能,例如window.find(),但它们并不适用于所有浏览器。因此,实现此目标的最佳方法是模拟ctrl + f

我有以下代码,但这不起作用,我不知道为什么。



function bringUpSearch() {

  var keyboardEvent = document.createEvent("KeyboardEvent");
  var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";


  keyboardEvent[initMethod](
    "keydown", // event type : keydown, keyup, keypress
    true, // bubbles
    true, // cancelable
    window, // viewArg: should be window
    true, // ctrlKeyArg
    false, // altKeyArg
    false, // shiftKeyArg
    false, // metaKeyArg
    102, // keyCodeArg : unsigned long the virtual key code, else 0
    0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
  );
  document.dispatchEvent(keyboardEvent);
}

<a href="#" onclick="bringUpSearch()">Bring up browser search</a>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

您无法在Chrome中执行此操作,因为没有API。 See the list of Chrome Extensions Documentation

在那些古老的手稿中,人们提到Find Dialog: window.find(),你可以通过传递true作为最后一个参数来打开对话框,但是它不会被支持多年。

您可以制作自定义搜索文本字段,从中获取用户输入并运行window.find