出于某种原因,我可以单击某些链接/按钮,但不能用于具有onclick属性的按钮/任何内容。 例如: 我输入浏览器控制台的JavaScript代码:
var o = document.getElementsByName("takepic");
for (var i = 0; i < 1000; i++){
o.click();
console.log(i);
}
我放了console.log,所以我知道浏览器在做什么,以及它目前在哪里。
页面上的html代码:
<form>
<input type="button" value="Configure..." onclick="webcam.configure()">
<input type="button" value="Take Snapshot" onclick="take_snapshot()" name="takepic">
</form>
基本上,我想使用浏览器控制台拍摄快照,但是当我输入我的代码时,我收到了这个错误:
TypeError:Object#没有方法'click'
当我使用相同的代码时,比如在Facebook上重新添加朋友,我就用这个:
var o = document.getElementsByName("fbaddfriend_example");
for (var i = 0; i < o.length; i++){
o[i].click();
console.log(i);
}
绝对有效。 我只是试着用页面上的按钮做同样的事,但没有用。
答案 0 :(得分:5)
您的问题出在您在控制台中输入的代码中。您正在使用document.getElementsByName()
,它将返回一个元素数组。你需要遍历这些元素。您是在第二个代码段中执行此操作,但不是第一个。
var o = document.getElementsByName("takepic");
for (var j = 0; j < o.length; j++) {
for (var i = 0; i < 1000; i++){
o[j].click();
console.log(i);
}
}
答案 1 :(得分:4)
将代码更改为:
var o = document.getElementsByName("takepic");
for (var i = 0; i < 1000; i++){
// ---v
o[i].click();
console.log(i);
}
变量o
包含所有检索元素的集合。 o[i]
会返回位置i
的元素。