Javascript 有没有一种方法可以使用$(document.elementFromPoint(x,y))单击超链接;还是类似的?
我正在编写一个iOS应用程序,它有一个屏幕外的uiwebview,为了能够与之交互,我需要在JavaScript中模拟鼠标点击。我已设法使用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”) 例如,使用您自己的方法我认为您可以
$(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);