我正在写一个小脚本(忽略我在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的情况下模拟点击?我用谷歌搜索但没有找到答案。
答案 0 :(得分:1)
我刚尝试了上面的代码(使用click()
),它在我的Firefox中运行。
所以我猜答案是,就像jQuery一样。
最终代码是......
var inputs = document
.getElementById('contentArea')
.getElementsByTagName('input');
for (var i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
if (inputs[i].name !== 'actions[reject]') {
continue;
}
inputs[i].click();
}
答案 1 :(得分:1)
.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);
}
当然,人们会将其封装在功能中以使其可重复使用;)