如何自动点击页面加载?

时间:2011-10-30 10:52:57

标签: javascript jquery

我需要在没有实际点击的情况下点击页面上指定的xy位置。我尝试了很多jquery和js脚本,但它们对我不起作用。这是jQuery的可能吗?

编辑:不适用于任何关联企业欺诈广告点击或恶意。

3 个答案:

答案 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>

Demo here.

通过检查事件的target属性(remains unchanged during propagation)来检查启动模拟点击的事件对象,从而避免非IE浏览器中的递归。

显然,IE在内部持有对其global event object的引用。 DOM级别2没有定义这样的全局变量,因此模拟器必须传入event的本地副本。

结论 - 在pageLoad中调用javascript方法,如您所愿。

fakeClick(event, document.getElementById('link'))

Reference link