所以有一个包含大约50个表单的页面。
第一种形式是搜索,所以我跳过了这种形式。
剩下的49,我关心。
在这49个中,我只查找go值等于续订的表单。
我在便笺簿中编写代码并且工作正常。
我将它粘贴到Greasemonkey中,我得到"document.forms[i].go is undefined"
这是我的代码:
var i=1 ;
var total = document.forms.length -1;
while (i<=total) {
var go_val = document.forms[i].go.value;
if(go_val == "renew"){
document.forms[i].setAttribute('target','_blank');
}
i++;
}
我也试过这个,检查go元素是否存在,表单是否生成错误,但不运行setattribute
。
var i=0 ;
var total = document.forms.length -1;
while (i<=total) {
if(document.forms[i].go){
var go_val = document.forms[i].go.value;
if(go_val == "renew"){
document.forms[i].setAttribute('target','_blank');
}
}
i++;
}
为什么它在便笺簿中有效,但在Greasemonkey中却没有?
答案 0 :(得分:2)
我找到了:"Pitfall #3: Named Forms and Form Elements"并想出来......
var i=0;
var total = document.forms.length -1;
while (i<=total) {
var form = document.forms[i];
if(form.elements.namedItem("go")){
var input = form.elements.namedItem("go");
var go_val = input.value;
if(go_val == "renew"){
document.forms[i].setAttribute('target','_blank');
}
}
i++;
}