我有一个正在编写的小脚本(忽略了在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 HTMLInputElement
s 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);
}
当然,可以将其封装在功能中以使其可重用;)