使用jQuery模拟多个按键

时间:2019-02-05 16:09:13

标签: jquery

我希望能够在Chrome中使用jQuery模拟键盘事件“ Ctrl + Shift + N”。我尝试过的是:

import Speech from '@google-cloud/speech'

该快捷方式应该会打开Chrome隐身窗口。但是没有运气。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

如果您运行代码段并在内容中看到78(78是N的键控代码),则可以正常工作。

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script>
  $(function () {
    $("body").keypress(function (e) {
      $(this).html(e.which);
    });
    var e = jQuery.Event("keypress");
    e.ctrlKey = true;
    e.shiftKey = true;
    e.keyCode = e.which = 78;
    $("body").trigger(e);
  });
</script>

如果您希望Chrome浏览器打开一个新的隐身窗口,则您会感到误解。这些不会干扰您的浏览器快捷方式,它们以沙盒模式运行。就像您尝试从浏览器中发布Ctrl + Alt + Del一样,这将是一个巨大的安全问题!

here有一个很好的答案,可能与以下内容有关:

  

如果您的目标是实现类似于sendKeys函数(将击键直接发送到键盘缓冲区的函数)的浏览器,那么您将无法实现。在浏览器中触发按键事件会将事件发送到DOM处理程序,而不是键盘缓冲区。因此,要在浏览器中模拟实际的工作键盘并将笔画发送到键盘缓冲区是不可能的,而这不会造成浏览器进入操作系统的安全漏洞。

因此,针对您的意图的简单答案是