Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用nodejs按键?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何使用nodejs按键?

Javascript 如何使用nodejs按键?,javascript,node.js,express,Javascript,Node.js,Express,我想知道如何通过nodejs上的代码来按下键盘上的某个键 例如,我希望在呈现以下页面后按下f3按钮: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // press key }); module.exports = router; 从服务器端不可能。 您可以在页面中包含一个

我想知道如何通过nodejs上的代码来按下键盘上的某个键

例如,我希望在呈现以下页面后按下f3按钮:

var express = require('express');
var router = express.Router();


/* GET home page. */
router.get('/', function(req, res, next) {
   // press key
});

module.exports = router;

从服务器端不可能。 您可以在页面中包含一个javascript脚本,该脚本可以触发事件。 如果您使用的是jQuery

var ev = jQuery.Event("keypress");
ev.ctrlKey = false;
ev.which = 37;
$("container").trigger(ev);

从服务器端不可能。 您可以在页面中包含一个javascript脚本,该脚本可以触发事件。 如果您使用的是jQuery

var ev = jQuery.Event("keypress");
ev.ctrlKey = false;
ev.which = 37;
$("container").trigger(ev);

看一看,它可以用来生成键盘事件

例如,要“发送”F3键,请按:

const robot = require('robotjs');
...
router.get('/', function(req, res, next) {
  robot.keyTap('f3');
  res.end();
});
尽管这取决于您使用的操作系统,但它是否能按预期工作。

请看一看,它可用于生成键盘事件

例如,要“发送”F3键,请按:

const robot = require('robotjs');
...
router.get('/', function(req, res, next) {
  robot.keyTap('f3');
  res.end();
});

尽管这取决于您使用的操作系统,但它是否能按预期工作。

您只需在nodejs中使用applescript,在其他平台上使用NodeKey sender即可

const os = require('os')
const childProcess = require('child_process')
const { promisify } = require('util')
const ks = require('node-key-sender')  

function hitHotkey (key, modifier) {
    if (os.type() === 'Darwin') {
      if (modifier) {
        return exec(`Script="tell app \\"System Events\\" to keystroke ${key} using ${modifier} down"
        osascript -e "$Script"`)
      } else {
        return exec(`Script="tell app \\"System Events\\" to keystroke ${key}"
        osascript -e "$Script"`)
      }
    } else {
      if (modifier) {
        return ks.sendCombination([modifier, key])
      } else {
        return ks.sendKey(key)
      }
    }
  }

您只需在nodejs中使用applescript,在其他平台上使用节点密钥发送器即可

const os = require('os')
const childProcess = require('child_process')
const { promisify } = require('util')
const ks = require('node-key-sender')  

function hitHotkey (key, modifier) {
    if (os.type() === 'Darwin') {
      if (modifier) {
        return exec(`Script="tell app \\"System Events\\" to keystroke ${key} using ${modifier} down"
        osascript -e "$Script"`)
      } else {
        return exec(`Script="tell app \\"System Events\\" to keystroke ${key}"
        osascript -e "$Script"`)
      }
    } else {
      if (modifier) {
        return ks.sendCombination([modifier, key])
      } else {
        return ks.sendKey(key)
      }
    }
  }

可能是重复的看看,它可能是你搜索的。我认为这是不可能的。当然不是您正在演示的服务器端代码。虽然我还没有做过这项研究,但我无法想象浏览器JS的沙盒也会允许这样的直接硬件模拟。为什么你需要F3命中?你预计会发生什么?你认为所有电脑F3按钮都做同样的事情吗?@codekid和King Reload>阅读问题。他不是在试图读取键盘输入,他是在试图使F3被击中。可能是重复的。看看,这可能是你搜索的。我认为这是不可能的。当然不是您正在演示的服务器端代码。虽然我还没有做过这项研究,但我无法想象浏览器JS的沙盒也会允许这样的直接硬件模拟。为什么你需要F3命中?你预计会发生什么?你认为所有电脑F3按钮都做同样的事情吗?@codekid和King Reload>阅读问题。他没有试图读取键盘输入,而是试图使F3被点击。谢谢,我添加了$('close btn')。单击(function(){var ev=jQuery.Event(“keypress”);ev.ctrlKey=false;ev.which=37;$('container')。trigger(ev);});对于以下按钮关闭应用程序,但当按钮单击(f3关闭应用程序)时,它似乎不起作用。如果您的目的是进行任何硬件模拟,则不可能。这只会触发任何事件句柄谢谢我添加了$(#close btn')。单击(function(){var ev=jQuery.event(“keypress”);ev.ctrlKey=false;ev.which=37;$(“container”).trigger(ev);});对于以下按钮关闭应用程序,但当按钮单击(f3关闭应用程序)时,它似乎不起作用。如果您的目的是进行任何硬件模拟,则不可能。这只会触发任何事件句柄这是我一直在寻找的这是我一直在寻找的