Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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将按键发送到网站_Javascript_Browser - Fatal编程技术网

JavaScript将按键发送到网站

JavaScript将按键发送到网站,javascript,browser,Javascript,Browser,网站如何识别按键、鼠标移动? 有没有一种方法可以通过JavaScript发送命令(“比如按下鼠标左键”),而不用实际按下鼠标按钮 如果我的问题太不清楚,我很乐意进一步解释。我是新来的,只是想从某个地方开始,但我迷路了 你能给我推荐一些好的学习材料吗,这样我就可以读懂了,非常感谢。鼠标、键盘和其他活动 网站通过订阅功能来识别键盘和鼠标“事件” 您可以通过html这样做:onkeypress=“keypressFunction()”,onmousemovefunction=“mousemoveFun

网站如何识别按键、鼠标移动? 有没有一种方法可以通过JavaScript发送命令(“比如按下鼠标左键”),而不用实际按下鼠标按钮

如果我的问题太不清楚,我很乐意进一步解释。我是新来的,只是想从某个地方开始,但我迷路了

你能给我推荐一些好的学习材料吗,这样我就可以读懂了,非常感谢。

鼠标、键盘和其他活动 网站通过订阅功能来识别键盘和鼠标“事件”

您可以通过html这样做:
onkeypress=“keypressFunction()”
onmousemovefunction=“mousemoveFunction()”
onclick=“clickFunction()”

或包含在文件中:

您还可以仅使用javascript订阅事件:

//Write `document` instead of `element` to apply to whole document
//Or you can find element by id like document.getElementById('id')
//You can of course use any other method of finding elements such
// as querySelector or use variables you already made before
或者,更常见、更安全的是,订阅:

注意:如果使用addEventListener,则不必在事件名称(例如
onkeypress
)中写入前缀

当然,您也可以使用已经生成的函数:

element.onkeypress = myFunction;

所有这些事件通常都会传递一个特定于事件的参数,以提供有关事件中到底发生了什么的更多数据

例如,传递参数,这样您就可以知道鼠标在单击对象时的位置(屏幕上的X和Y坐标),按住alt/shift/ctrl键,以及单击了哪个鼠标按钮(左、右、中)

包含按下哪个键盘键的信息、是否按住该键等信息。您可以找到所有事件参数

模拟事件 一些基本事件,例如鼠标单击元素,可以用
元素来模拟。单击();
,但这并不能让您对传递的事件参数有太多的控制

要正确发送事件,需要创建浏览器事件对象,并将其分派到元素上:

//Call oncontextmenu (right mouse click) on an element:
var element = document.getElementById('Id_here');
if (window.CustomEvent) {
    element.dispatchEvent(new CustomEvent('contextmenu'));
} else if (document.createEvent) {
    var ev = document.createEvent('HTMLEvents');
    ev.initEvent('contextmenu', true, false);
    element.dispatchEvent(ev);
} else { // Internet Explorer
    element.fireEvent('oncontextmenu');
}
使用该事件对象,您可以传递一些数据,下面是模拟按键:

var element = document.getElementById('Id_here');
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,    // view: should be window
  false,     // ctrlKey
  false,     // altKey
  false,     // shiftKey
  false,     // metaKey
  65,        // keyCode: unsigned long - the virtual key code, else 0. 65 - 'a'
  0          // charCode: unsigned long - the Unicode character associated with the depressed key, else 0
);
element.dispatchEvent(keyboardEvent);

Jquery提供了一些很好的函数,使模拟事件变得更容易,但你可以找到那些满栈溢出的函数,更不用说谷歌了。只需搜索
js模拟按键/鼠标
js subscribe to key/mouse event
,以及你可以想象的所有其他东西。

该网站有附加到元素的事件侦听器。你可以以编程方式发送您自己的事件,或以编程方式触发网站的侦听器这是否回答了您的问题?@CertainPerformance我在服务器到客户端的通信方面没有受过真正的教育,因此网站将事件侦听器附加到由客户端触发的元素上,比如通过鼠标单击“搜索”按钮“谷歌上的按钮?该网站会接受外国活动吗?这些将如何发送到服务器?@LukaKostic它告诉我语法等的外观。首先谢谢你!这些脚本将如何在网站上执行和实际使用?其中没有任何内容是服务器-客户端通信-都是客户端通信
element.addEventListener('keypress', function(eventArgs){
    eventArgs = eventArgs || window.event;
    // use eventArgs.keyCode to get which key
});
element.onkeypress = myFunction;
element.addEventListener('keypress', myFunction);
//Call oncontextmenu (right mouse click) on an element:
var element = document.getElementById('Id_here');
if (window.CustomEvent) {
    element.dispatchEvent(new CustomEvent('contextmenu'));
} else if (document.createEvent) {
    var ev = document.createEvent('HTMLEvents');
    ev.initEvent('contextmenu', true, false);
    element.dispatchEvent(ev);
} else { // Internet Explorer
    element.fireEvent('oncontextmenu');
}
var element = document.getElementById('Id_here');
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,    // view: should be window
  false,     // ctrlKey
  false,     // altKey
  false,     // shiftKey
  false,     // metaKey
  65,        // keyCode: unsigned long - the virtual key code, else 0. 65 - 'a'
  0          // charCode: unsigned long - the Unicode character associated with the depressed key, else 0
);
element.dispatchEvent(keyboardEvent);