模拟鼠标单击

我的猜测是网页正在监听mousedown而不是点击(这对于可访问性是不利的,因为当用户使用键盘时,只会触发焦点和点击,而不是mousedown)。所以你应该模拟mousedown,click和mouseup(顺便说一句,它是iPhone,iPod Touch和iPad在点击事件上做的事情)。

要模拟鼠标事件,可以将此代码段用于支持DOM 2 Events的浏览器。要获得更加简单的模拟,请使用填充鼠标位置initMouseEvent。

// DOM 2 Events

var dispatchMouseEvent = function(target, var_args) {

var e = document.createEvent("MouseEvents");

// If you need clientX, clientY, etc., you can call

// initMouseEvent instead of initEvent

e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));

target.dispatchEvent(e);

};

dispatchMouseEvent(element, 'mouseover', true, true);

dispatchMouseEvent(element, 'mousedown', true, true);

dispatchMouseEvent(element, 'click', true, true);

dispatchMouseEvent(element, 'mouseup', true, true);

当您触发模拟点击事件时,浏览器将实际触发默认操作(例如,导航到链接的href,或提交表单)。

在IE中,等效的片段就是这个(未经验证,因为我没有IE)。我不认为你可以给事件处理程序鼠标位置。

// IE 5.5+

element.fireEvent("onmouseover");

element.fireEvent("onmousedown");

element.fireEvent("onclick");  // or element.click()

element.fireEvent("onmouseup");

模拟keydown和按键

您可以模拟keydown和keypress事件,但不幸的是,在Chrome中,它们只会触发事件处理程序,并且不执行任何默认操作。我认为这是因为DOM 3 Events工作草案描述了这个关键事件的时髦顺序:

keydown(通常有默认操作,如fire click,submit或textInput events)

按键(如果键不仅仅是Shift或Ctrl等修饰键)

(keydown,keypress)如果用户按下按钮,则返回repeat = true

keydown的默认动作!!

KEYUP

这意味着您必须(在梳理HTML5和DOM 3事件草稿时)模拟浏览器本来会执行的大量操作。当我不得不这样做时,我讨厌它。例如,这大致是如何模拟输入或文本区域上的按键。

// DOM 3 Events

var dispatchKeyboardEvent = function(target, initKeyboradEvent_args) {

var e = document.createEvent("KeyboardEvents");

e.initKeyboardEvent.apply(e, Array.prototype.slice.call(arguments, 1));

target.dispatchEvent(e);

};

var dispatchTextEvent = function(target, initTextEvent_args) {

var e = document.createEvent("TextEvent");

e.initTextEvent.apply(e, Array.prototype.slice.call(arguments, 1));

target.dispatchEvent(e);

};

var dispatchSimpleEvent = function(target, type, canBubble, cancelable) {

var e = document.createEvent("Event");

e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));

target.dispatchEvent(e);

};

var canceled = !dispatchKeyboardEvent(element,

'keydown', true, true,  // type, bubbles, cancelable

null,  // window

'h',  // key

0, // location: 0=standard, 1=left, 2=right, 3=numpad, 4=mobile, 5=joystick

'');  // space-sparated Shift, Control, Alt, etc.

dispatchKeyboardEvent(

element, 'keypress', true, true, null, 'h', 0, '');

if (!canceled) {

if (dispatchTextEvent(element, 'textInput', true, true, null, 'h', 0)) {

element.value += 'h';

dispatchSimpleEvent(element, 'input', false, false);

// not supported in Chrome yet

// if (element.form) element.form.dispatchFormInput();

dispatchSimpleEvent(element, 'change', false, false);

// not supported in Chrome yet

// if (element.form) element.form.dispatchFormChange();

}

}

dispatchKeyboardEvent(

element, 'keyup', true, true, null, 'h', 0, '');

我不认为可以在IE中模拟关键事件。

html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?相关推荐

  1. html模拟点击某个键盘按钮,【Chrome-crx】键盘模拟鼠标点击网页按钮

    0x00 前言 最近在做一个标注任务: 简单的说,就是屏幕上有好多小方块,选中其中的部分, 然后在页面下面的四个标注按钮(红绿蓝黑)上点一下, 小方块们就会被染成这个按钮的颜色,需要把所有的小方块们染 ...

  2. python模拟鼠标点击和键盘输入的操作_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不 ...

  3. python模拟鼠标点击和键盘输入的操作_Python模拟鼠标点击及键盘输入(PyUserInput)...

    一.背景 有时可以通过程序来监控键盘或鼠标行为来触发鼠标的点击或者键盘的输入,类似于按键精灵,而Python是门简洁易实现的语言,同时PyUserInput库简单封装了底层的调用. 整篇文章以Wind ...

  4. 键鼠大师识别图片鼠标连点模拟点击和键盘

    我们平时有可能比较爱玩游戏或者要在电脑上进行工作,但是其中有很多繁琐的事情要去做,这时我们就会想,有没有可以不用自己去花费精力做这些事的办法? 确实有,咱们就是可以通过电脑识图片,鼠标点击图片,但又是 ...

  5. seo模拟点击软件_哪些SEO排名工具是有效的呢?

    SEO的发展到现在已经有十多年的时间,出现的大大小小的SEO工具也有上百种,这些SEO工具的背景和作用是不同的.大致可以分为两类:一类是SEO建议工具,帮助诊断网站给出优化分析建议:另一类是可以直接帮 ...

  6. 【Selenium】解决 无法模拟定位点击

    此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉. 本文章纯野生,无任何借鉴他人文章及抄袭等.坚持原创!! 前言 最近在利用Selenium做一些在浏览器上的自动 ...

  7. python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...

    通过Python可以模拟鼠标点击和键盘输入的操作,进而可以实现一些比较有趣的功能,例如游戏挂机.自动发消息等. 本文以自动发消息为例,实现该功能,通过该代码可以自动往QQ.微信发送任意内容.首先考虑想 ...

  8. C语言 在程序中打开网页,模拟鼠标点击、键盘输入

    C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述         记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...

  9. python模拟鼠标键盘操作_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...

    通过Python可以模拟鼠标点击和键盘输入的操作,进而可以实现一些比较有趣的功能,例如游戏挂机.自动发消息等. 本文以自动发消息为例,实现该功能,通过该代码可以自动往QQ.微信发送任意内容.首先考虑想 ...

最新文章

  1. 深度解析:mPaaS 3.0全新组件
  2. char转成string_真没想到,一个小小的String居然还有这么多窍门?
  3. 五个举措:现代化Jenkins 和终结“Jenkinsteins”
  4. JSON在JS和JAVA的处理
  5. Activiti Modeler发布以及教程
  6. Python frozenset 集合 - Python零基础入门教程
  7. Mysql 学习之 SQL的执行顺序
  8. zookeeper集群,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。...
  9. CSS3 calc() 函数,height: calc(100% - 70px);
  10. OGG_GoldenGate日常维护(案例)
  11. idea中XML注释与取消注释快捷键
  12. python爬取有道翻译的代码_有道翻译的爬取
  13. 常见遥感卫星基本参数大全
  14. 念悠文化:微博运营怎么做?微博运营的几个方法
  15. 点云文件常用格式转换(pcd,txt,ply,obj,stl)
  16. 如何写一个简单的病毒程序
  17. 四:MySQL 表介绍
  18. 防火墙(360天堤)双因素身份认证解决方案
  19. 【转载】基于LLVM Pass实现控制流平坦化
  20. MacBook上有哪些好用的学习类软件

热门文章

  1. (一)彩色图片(RGB)转灰度图片
  2. 两万字的Redis笔记!
  3. Tr1 Function
  4. 两直线平行交叉相乘_向量平行公式和垂直公式
  5. TR1 tuple的用法
  6. c语言输出一行星星代码,C语言打印星星的问题
  7. 数学公式大全--极限、微分、积分
  8. 二、文字转成图片,图片上写字
  9. 孟子:生于忧患,死于安乐
  10. android业余手机开发,赚钱心得