使用 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 坐标处模拟点击的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中矩阵的 x、y 坐标处分配向量

请问Matlab的坐标轴怎么让它显示在x=0,y=0处

[CSP-S模拟测试]:折射(DP)

在 Javascript 中使用 X、Y 坐标裁剪图像

从Javascript中的数字数组返回坐标(x,y)

如何在 kivy 中设置网格布局的位置(x,y 坐标)?