使用Javascript将值插入测试框

时间:2013-07-22 14:16:23

标签: javascript insert greasemonkey

我正在使用Greasemonkey在文本框中插入一个值,但我不能为我的生活让它发挥作用。我右键单击Firefox中的文本框并检查元素。它显示“input #ExtensionExtnum .field_for_edit”

document.getElementsByName("ExtensionExtnum").item(0).value = "test";
document.forms[0].submit();

我回来了:

/*
Exception: document.getElementsByName("ExtensionExtnum").item(0) is null
@Scratchpad:8
*/

我已经将这种代码用于其他网站,用于自动输入用户名和密码。我不明白为什么它在这里不起作用。

3 个答案:

答案 0 :(得分:0)

var items = document.getElementsByName("ExtensionExtnum");
if(items.length > 0)
    items[0].value = "test";

答案 1 :(得分:0)

input#ExtensionExtnum.field_for_edit中,ExtensionExtnum是元素ID,而不是其名称。因此,您必须使用:

var elem = document.getElementById("ExtensionExtnum");
if ( elem !== null) elem.value = "test";

如果要设置类field_for_edit的所有元素的值,请使用:

var elem = document.getElementsByClassName("field_for_edit");
for (var i = 0; i < elem.length; i++)
{
  elem[i].value = "test";
}

答案 2 :(得分:0)

先检查是否有这样的元素

    if(document.getElementById("ExtensionExtnum") != undefined)
    {
        document.getElementById("ExtensionExtnum").value = "test";
    }