Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何模拟单击<;输入类型=";“图像”/>;?_Javascript_Image_Click_Simulation - Fatal编程技术网

Javascript 如何模拟单击<;输入类型=";“图像”/>;?

Javascript 如何模拟单击<;输入类型=";“图像”/>;?,javascript,image,click,simulation,Javascript,Image,Click,Simulation,当我们使用这种类型的输入提交表单时,坐标(x,y)会附加到结果中 如果我动态创建两个隐藏输入,它就可以工作,但我想要一些不同的东西。 事件或MouseEvent会很好,但我无法让它工作 这是我当前的代码:(工作正常) 我给你举个例子 让我们想象一下,在图像表单元素附近有一个纯文本,上面写着:在下面的图像中,在大于20和小于60的任何位置单击 正常人会阅读此内容并正常单击。 但是,作为一个没有手的机器人,我需要模拟相同的点击事件,而不完全理解您在这里要做什么(我认为您的问题有点模糊),我必须问:您

当我们使用这种类型的输入提交表单时,坐标(x,y)会附加到结果中

如果我动态创建两个隐藏输入,它就可以工作,但我想要一些不同的东西。
事件或MouseEvent会很好,但我无法让它工作

这是我当前的代码:(工作正常)

我给你举个例子

让我们想象一下,在图像表单元素附近有一个纯文本,上面写着:在下面的图像中,在大于20和小于60的任何位置单击

正常人会阅读此内容并正常单击。

但是,作为一个没有手的机器人,我需要模拟相同的点击事件,而不完全理解您在这里要做什么(我认为您的问题有点模糊),我必须问:您是否考虑过使用jQuery或其他javascript库/框架?我理解有时候,对于非常简单的网站来说,这是过分的。但是,它可能是值得的,以减轻头痛,找出这件事自己

据我所知,您正在使用一个“image”表单元素来提交表单,并且希望模拟单击image元素来检索某物的x/y坐标。我可能错了。你能说得更清楚些吗


当我对您的问题有了更多的了解后,我会看看是否可以在jQuery中向您展示如何做到这一点。

如果不完全理解您在这里尝试做什么(我认为您的问题有点模糊),我必须问:您是否考虑过使用jQuery或其他javascript库/框架?我理解有时候,对于非常简单的网站来说,这是过分的。但是,它可能是值得的,以减轻头痛,找出这件事自己

据我所知,您正在使用一个“image”表单元素来提交表单,并且希望模拟单击image元素来检索某物的x/y坐标。我可能错了。你能说得更清楚些吗


当我进一步了解您的问题时,我会看看是否可以在jQuery中向您展示如何执行此操作。

我无法告诉您要将结果附加到什么内容。表单中的值是多少?这是自动的,不需要代码(它们会遇到x和y,或者elementname.x和elementname.y)。

评论后编辑:

您可以避免节点插入事件,因为此时不生成元素;即在表格中添加x和y。然后在事件上,您可以简单地设置它们的值。当然,您也可以绑定不同的事件,我不知道您的情况,但是我使用了一个附加到页面主体的onClick事件。相反,您可能希望将特定的onClick事件绑定到不同的可单击项,并为它们插入您自己的位置,但在我的例子中,我在页面上提交了鼠标的位置。如果没有帮助,请对原因进行评论,我会看看是否可以再次修改它。

我无法告诉您要将结果附加到什么内容。表单中的值是多少?这是自动的,不需要代码(它们会遇到x和y,或者elementname.x和elementname.y)。

评论后编辑:


您可以避免节点插入事件,因为此时不生成元素;即在表格中添加x和y。然后在事件上,您可以简单地设置它们的值。当然,您也可以绑定不同的事件,我不知道您的情况,但是我使用了一个附加到页面主体的onClick事件。相反,您可能希望将特定的onClick事件绑定到不同的可单击项,并为它们插入您自己的位置,但在我的例子中,我在页面上提交了鼠标的位置。如果这没有帮助,请对原因进行评论,我会看看是否可以再次修改它。

您使用的是框架还是纯javascript?对如何填充
posx
posy
感到好奇……假设“posx”和“posy”必须是20到60之间的任何整数,这真的很难做到。你所拥有的是IMO最可接受的解决方案。考虑到这个动态输入代码在IE中不起作用,因为Roatin Marth发现了这个很好的老错误。但IE不是问题所在,我正在尝试使用FX.:)您使用的是框架还是纯javascript?很好奇
posx
posy
是如何填充的……假设“posx”和“posy”必须是20到60之间的任何整数,这真的很难做到。你所拥有的是IMO最可接受的解决方案。考虑到这个动态输入代码在IE中不起作用,因为Roatin Marth发现了这个很好的老错误。但IE不是问题所在,我正在尝试使用FX.:)是的,这正是我想做的。我想在imageform元素中检索模拟鼠标单击的坐标。就像我在手动点击图像一样。如果jQuery是解决方案,那么我将保留隐藏的输入。谢谢,这正是我想做的。我想在imageform元素中检索模拟鼠标单击的坐标。就像我在手动点击图像一样。如果jQuery是解决方案,那么我将保留隐藏的输入。谢谢如果我只使用click(),坐标将作为0,0发送。我想模拟我想要的任何其他坐标。这仍然没有意义-也许你可以分步解释逻辑应该是什么?我明白了。我不明白你为什么要那样,但我不需要。我将考虑一个解决方案并编辑我的答案。实际上,您可以将元素添加到表单中,而无需设置值并动态设置值,而不是动态生成元素本身。您的代码是否有问题?您的代码长度太长,无法轻松地放置在click事件上?我的代码太长,并且被DomainDeInserted事件捕获(不希望的副作用)。我期望使用createEvent()、InitMouseeEvent()和dispatchEvent()的东西。但我的尝试都没有成功。可能我做错了什么。如果我只使用click(),坐标将作为0,0发送。我想去西木
var input = document.createElement("input");
input.type = "hidden";
input.name = "x";
input.value = posx;
my_form.appendChild(input);

input = input.cloneNode(false);
input.name = "y";
input.value = posy;
my_form.appendChild(input);