我有一个正在编写的小脚本(忽略了在FaceBook上收到的数百个愚蠢的请求)。

var inputs = document
              .getElementById('contentArea')
              .getElementsByTagName('input');

for (var i = 0, inputsLength = inputs.length; i < inputsLength; i++) {

    if (inputs[i].value !== 'Ignore') {
        continue;
    }

    // What I would do with jQuery, if inputs[i] was a jQuery object.
    inputs[i].click();

}


因此,基本上我想在所有这些忽略按钮上调用click事件,然后让FaceBook的AJAX完成其余工作。

在没有jQuery的情况下如何模拟点击?我已经用Google搜索,但是没有找到答案。

最佳答案

.click() is a method of HTMLInputElements in Firefox(不确定是否也在其他浏览器中)。

也可以在其他浏览器中使用的另一种方法是使用document.createEvent

var inputs = document
              .getElementById('contentArea')
              .getElementsByTagName('input');

for (var i = 0, inputsLength = inputs.length; i < inputsLength; i++) {

    if (inputs[i].value !== 'Ignore') {
        continue;
    }
    // maybe it is enough to create it only once before the the loop, don't know
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
      0, 0, 0, 0, 0, false, false, false, false, 0, null);
    inputs[i].dispatchEvent(evt);

}


当然,可以将其封装在功能中以使其可重用;)

10-07 21:46