如何强制Web浏览器单击页面上的链接?

时间:2012-04-25 03:12:09

标签: javascript jquery click bookmarklet

如何让网页浏览器点击页面上的#id元素?

在javascript中使用.click不起作用,因为尽管在函数中调用.click,但是在单击时不执行该函数(否则它将起作用)

请帮忙。

$('#gocircus').live('click', function() {
document.getElementById('something').click();
});

Clickrobot

3 个答案:

答案 0 :(得分:2)

var el = document.getElementById('id');
el.onclick();

假设您正在为此元素分配功能,请先点击

el.onclick = function() { // your code }

您的代码无效,click()是点击事件的jQuery扩展,您无法在原生DOMElement上使用它,而是:

$('#gocircus').live('click', function() {
   $('#something').click();
}).click();

根据我的评论,live从1.7开始已弃用,请使用on()

$(document).on('click', '#gocircus', function() {
   $('#something').click();
}).click();

修改

根据您的情况,我认为您需要将点击事件绑定到GO!

$('#go').click(function() {
   for(var i = 0; i < $('#manyTimesToClick').val(); i++) {
      $('#idToClick').click();
   }
});

答案 1 :(得分:1)

如果你对jquery开放,你可以尝试使用触发器事件来触发按钮 http://api.jquery.com/trigger/

$("#gocircus").click(function () {
$("something").trigger('click');


});

答案 2 :(得分:0)

您需要的方法是dispatchEventfireEvent,具体取决于浏览器。

以下是一个示例代码段

function eventFire(el, etype){
  if (el.fireEvent) {
    (el.fireEvent('on' + etype));
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

从这里开始:How to simulate a click with JavaScript?