我需要在没有实际点击的情况下点击页面上指定的xy位置。我尝试了很多jquery和js脚本,但它们对我不起作用。这是jQuery的可能吗?
编辑:不适用于任何关联企业欺诈广告点击或恶意。
答案 0 :(得分:3)
只需将div放入ID为click
的文档中,然后点击
$("#click").click();
我觉得点击特定的绳索甚至是不可能的任务
示例
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<div id="click"><a href="/advert/profit/1">advert here</a></div>
<script> $("#click").click(); </script>
答案 1 :(得分:0)
我认为将你想要运行的函数绑定到load事件本身会更好...通常模拟鼠标点击不是最好的编程习惯。
你能提供一些关于你想要做什么的代码吗?
答案 2 :(得分:0)
这是一个完整的测试用例,模拟click
事件,调用附加的所有处理程序(但它们已被附加),维护"target"
属性(IE中为"srcElement"
),气泡像普通事件一样,并模仿IE的递归预防。测试了FF 2,Chrome 2.0,Opera 9.10,当然还有IE(6):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
function fakeClick(event, anchorObj) {
if (anchorObj.click) {
anchorObj.click()
} else if(document.createEvent) {
if(event.target !== anchorObj) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
var allowDefault = anchorObj.dispatchEvent(evt);
// you can check allowDefault for false to see if
// any handler called evt.preventDefault().
// Firefox will *not* redirect to anchorObj.href
// for you. However every other browser will.
}
}
}
</script>
</head>
<body>
<div onclick="alert('Container clicked')">
<a id="link" href="#" onclick="alert((event.target || event.srcElement).innerHTML)">Normal link</a>
</div>
<button type="button" onclick="fakeClick(event, document.getElementById('link'))">
Fake Click on Normal Link
</button>
<br /><br />
<div onclick="alert('Container clicked')">
<div onclick="fakeClick(event, this.getElementsByTagName('a')[0])"><a id="link2" href="#" onclick="alert('foo')">Embedded Link</a></div>
</div>
<button type="button" onclick="fakeClick(event, document.getElementById('link2'))">Fake Click on Embedded Link</button>
</body>
</html>
通过检查事件的target
属性(remains unchanged during propagation)来检查启动模拟点击的事件对象,从而避免非IE浏览器中的递归。
显然,IE在内部持有对其global event
object的引用。 DOM级别2没有定义这样的全局变量,因此模拟器必须传入event
的本地副本。
fakeClick(event, document.getElementById('link'))