2012-04-24 131 views
5

如何使用javascript或jquery模拟x/y坐标点击?使用javascript模拟点击x/y坐标

我将多次使用该脚本,我希望脚本点击位置一然后位置两个然后三个然后四个等等。

最好不要移动鼠标光标,但如果它必须移动,那么也很好。

+4

'{尝试写一些代码}赶上(不能做到这一点){掷(发脾气);}' – 2012-04-24 20:31:53

+1

我希望听到更多关于你想要完成的事情......给我一个怀疑论,但我怀疑你可能试图欺骗你的点击收入。 – Prestaul 2012-04-24 20:40:04

+0

[使用x,y坐标模拟点击? - Javascript](http://stackoverflow.com/questions/3277369/simulate-a-click-by-using-xy-coordinates-javascript) – Prestaul 2012-04-24 20:53:56

回答

17

这实际上可以用document.elementFromPoint方法完成。这个jQuery例如:

function simulateClick(x, y) { 
    jQuery(document.elementFromPoint(x, y)).click(); 
} 
simulateClick(100, 250); 
simulateClick(400, 250); 

编辑:这里是一个工作示例:http://jsfiddle.net/z5YjY/

+0

+1忘了所有关于他的方法。 – Sampson 2012-04-24 20:36:26

+0

为什么我看到-2 这是真的奇怪 任何方式感谢ü乌拉圭回合的答复我会尝试,并告诉ü – 2012-04-24 21:12:30

+0

我很抱歉,但我怎么可以使用此代码 可以ü请给我完整的代码 放之前 <脚本类型=“文/ JavaScript的”> 还是什么 ,将使其在现在的位置是100 25和现在的位置是400 250,即使它是一个iframe ,我可以做也是正确的页面自动点击点击 什么jquey我必须包括在头 – 2012-04-24 21:45:45

5

在第二个采取,我想分享我的经验,并更新Prestaul的答案。

在大多数情况下,你不只是想点击一个元素来诱导'onclick'事件,但你想使用点击信息的东西(例如:在那里移动滑块,或把一个滑块弹出在那个确切的地方)。

我主要使用香草js,但它与$很好地融合在一起。

function simulateClick(x, y) { 
    var clickEvent= document.createEvent('MouseEvents'); 
    clickEvent.initMouseEvent(
    'click', true, true, window, 0, 
    0, 0, x, y, false, false, 
    false, false, 0, null 
    ); 
    document.elementFromPoint(x, y).dispatchEvent(clickEvent); 
} 

基本上这会通过事件传递正确的pageX/pageY,以备后用。

我已经更新了小提琴为好,显示出使用这些COORDS的: http://jsfiddle.net/V4CdC/