JS如何模拟鼠标点击X,Y坐标

JavaScript035

JS如何模拟鼠标点击X,Y坐标,第1张

现在我有个窗口坐标X,Y. 如何利用JS点击该坐标?

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createEvent

遍历dom元素,记录每个元素的坐标,找到离(x,y)最近的且z-index最大一个元素,模拟这个dom元素的点击

https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent

其中,

initMouseEvent 方法用于初始化通过 DocumentEvent 接口创建的 MouseEvent 的值。此方法只能在通过dispatchEvent 方法指派 MouseEvent 之前调用,尽管在该阶段可以多次调用它(如有必要)。如果被多次调用,则最后一次调用优先。

参数:

document.createEvent用于创建事件,在DOM Level 2 的事件中就有HTMLEvents,MouseEvents,UIEvents事件类型。DOM Level 3增加很多事件类型,个人觉得其中最有用的是CustomEvent自定义事件。

有效的事件类型列表:

http://www.w3school.com.cn/xmldom/met_document_createevent.asp#eventType

为DOM元素创建自定义事件的步骤为:

一、创建事件:var ev = document.createEvent('CustomEvent')

二、初始化事件:ev.initCustomEvent('自定义事件名称', false(是否允许冒泡), false(是否允许中断),args)

三、为DOM添加事件监听:element.addEventListener('自定义事件名称',fn,false)

四、分发(触发)自定义事件:element.dispatchEvent(ev)

pdf.js可以获取点击坐标。

1、需要用鼠标点击pdf的位置,在所点击的位置那,插入一个图片。

2、后台用的是itextpdf,插入图片功能已经做好,鼠标点击pdf文档的位置即可获取坐标。

//duration {number} 按住时长,单位毫秒。

setScreenMetrics(width, height) //设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时,屏幕宽度不一致会自动放缩坐标。

click(x, y) //模拟点击坐标(x, y),并返回是否点击成功。只有在点击执行完成后脚本才继续执行。默认100ms点击时长。

longClick(x, y)//模拟长按坐标(x, y), 并返回是否成功。只有在长按执行完成(大约600毫秒)时脚本才会继续执行。

press(x, y, duration)//模拟按住坐标(x, y), 并返回是否成功。只有按住操作执行完成时脚本才会继续执行。

swipe(x1, y1, x2, y2, duration)//模拟从坐标(x1, y1)滑动到坐标(x2, y2),并返回是否成功。只有滑动操作执行完成时脚本才会继续执行。

gesture(duration, [x1, y1], [x2, y2], ...)//模拟手势操作。

gestures([delay1, duration1, [x1, y1], [x2, y2], ...], [delay2, duration2, [x3, y3], [x4, y4], ...], ...)

//同时模拟多个手势。

//输出

log()//日志输出。 toast()//气泡输出。toastLog()//气泡,日志输出。alert()//对话框输出。

//注释

行级注释   --->  //注释内容。块级注释   --->  /*注释内容*/。

1.字符串的拼接用加号进行运算。

2.布尔值运算         

非-感叹号,感叹号的作用是布尔值取反,比如本来为true的数据类型,用了!值为false,本来为false的变为true。        

都-    &&,连接两个布尔值,如果两个值都为true,那么返回true,否则返回false        

任意-    ||,连接两个布尔值,如果两个中有一个为true,那么整体返回true,否则返回false