使用 javascript 在 x/y 坐标处模拟点击
Posted
技术标签:
【中文标题】使用 javascript 在 x/y 坐标处模拟点击【英文标题】:Simulate click at x/y coordinates using javascript 【发布时间】:2012-05-05 12:52:21 【问题描述】:如何使用 javascript 或 jquery 模拟 x/y 坐标的点击?
我将多次使用该脚本,我希望该脚本先点击位置一,然后点击位置二,然后点击位置三,然后点击四,依此类推。
最好不要移动鼠标光标,但如果它必须移动,那也没关系。
【问题讨论】:
try writing some code catch(can't do it) throw(tantrum);
我想更多地了解您想要完成的工作......请称我为怀疑论者,但我怀疑您可能试图通过欺骗手段获得一些基于点击的收入。
Simulate a click by using x,y coordinates? - Javascript 的可能重复项
@Prestaul 我不会担心,如果这是他的目标,他会非常失望
我不明白为什么我的问题改变了我没有那样写
【参考方案1】:
这实际上可以通过document.elementFromPoint
方法来完成。一个 jQuery 示例:
function simulateClick(x, y)
jQuery(document.elementFromPoint(x, y)).click();
simulateClick(100, 250);
simulateClick(400, 250);
编辑:这是一个工作示例:http://jsfiddle.net/z5YjY/
【讨论】:
为什么我看到-2这真的很奇怪谢谢你的回复我会试试并告诉你 对不起,但我该如何使用这个代码,你能不能给我完整的代码放在它前面 @AhmedHafez,将我写的内容放在<script>
标签中,包括 jquery,它应该可以工作。我不相信有一种方法可以模拟右键单击,并且在 iframe 内模拟单击的技术将会非常不同。如果您需要这样做,则 iframe 必须与父窗口位于同一域中,我建议您创建第二个问题。 (即“如何模拟 iframe 内的点击”)
@AhmedHafez,我添加了一个模拟 5 次点击并报告该位置元素中的文本的工作示例。看看是否有帮助。
是的,这不适用于 iframe,如果您对 iframe、时间等有其他问题,我会将它们作为新问题发布,但请注意您的英语,否则您可能会在得到好的答案之前被否决。让同事或朋友为您检查您的问题可能是值得的。【参考方案2】:
在第二次拍摄时,我会分享我的经验,并更新 Prestaul 的答案。
在大多数情况下,您不只是想点击一个元素来引发 'onclick' 事件,而是希望将点击信息用于某些事情(例如:将滑块移到那里,或放置一个弹出窗口在那个确切的地方)。
我主要使用 vanilla 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,以供进一步使用。
我也更新了小提琴,以展示这些坐标的用法: http://jsfiddle.net/V4CdC/
【讨论】:
以上是关于使用 javascript 在 x/y 坐标处模拟点击的主要内容,如果未能解决你的问题,请参考以下文章