Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 有没有一种方法可以使用$(document.elementFromPoint(x,y))单击超链接;还是类似的?_Javascript_Jquery - Fatal编程技术网

Javascript 有没有一种方法可以使用$(document.elementFromPoint(x,y))单击超链接;还是类似的?

Javascript 有没有一种方法可以使用$(document.elementFromPoint(x,y))单击超链接;还是类似的?,javascript,jquery,Javascript,Jquery,我正在编写一个iOS应用程序,它有一个屏幕外的uiwebview,为了能够与之交互,我需要在JavaScript中模拟鼠标点击。我已设法使用$(document.elementFromPoint(x,y))。单击()可以单击JavaScript按钮,但我需要一种方法,可以使用某种坐标单击超链接。这可能吗?您应该能够获取对元素的引用,只需调用window.location=$(“a”).attr(“href”)或窗口。打开($(“a”).attr(“href”) 例如,使用您自己的方法我认为您可以

我正在编写一个iOS应用程序,它有一个屏幕外的uiwebview,为了能够与之交互,我需要在JavaScript中模拟鼠标点击。我已设法使用
$(document.elementFromPoint(x,y))。单击()
可以单击JavaScript按钮,但我需要一种方法,可以使用某种坐标单击超链接。这可能吗?

您应该能够获取对元素的引用,只需调用
window.location=$(“a”).attr(“href”)
窗口。打开($(“a”).attr(“href”)


例如,使用您自己的方法

我认为您可以在


不确定浏览器兼容性,但至少在Firefox上进行了测试。

如果尝试
$(document.elementFromPoint(x,y)),会发生什么情况。单击()?它在超链接上什么都不做看起来什么都没发生?没有错误?你检查过控制台了吗?刚刚检查过,没有任何错误。我认为该函数只能单击附加了某种javascript函数的对象,因此它们会像
onclick=“function()”
那样做,而不仅仅是简单的超链接+1我同意使用
窗口.location
跟随
href
是个好主意。问题是“激活”首先是锚定标签。OP没有单击实际的标记-1因为这不能回答问题。我需要能够通过页面上的坐标“单击”链接。该应用程序的工作原理是,它将获得屏幕上触摸的坐标,并将它们映射到屏幕外的网络视图,因此我需要一种在坐标处“单击”超链接的方法。我不理解向下投票。。。我不明白你的问题,Fonix。您已经回答了自己的问题,使用elementFromPoint可以获取页面上的DOM节点。如果您正在寻找一种在获得引用后解析该url的方法,请使用我建议的方法。@Fonix Yes,
window.location
将当前页面重定向到指定的url,而
window.open
将使用指定的url打开一个新窗口/选项卡。啊,这看起来很有希望。让我测试一下,我认为它在语义上与
相同。click()
-不过,我现在没有时间检查jQuery的源代码。奇怪的是,使用jQuery的
。click
。trigger
在链接上不起作用,但DOM
。dispatchEvent
起作用。@AlvinWong是的,这很奇怪,但很高兴知道,因为现在我不需要检查是否单击了超链接或其他内容,这更像是普通的鼠标单击好奇-jQuery实际上似乎没有调用
dispatchEvent()
,它看起来只是触发jQuery注册的处理程序和DOM0
.onXXX
处理程序。我怀疑它将无法调用使用
addEventHandler()
注册的任何处理程序。
var event = document.createEvent("MouseEvents");
event.initEvent("click", true, true);
document.elementFromPoint(x, y).dispatchEvent(event);