2

我正在使用 Greasemonkey 在文本框中插入一个值,但我一辈子都无法让它工作。我右键单击 Firefox 中的文本框并检查元素。它显示“输入#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
*/

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

4

3 回答 3

0
var items = document.getElementsByName("ExtensionExtnum");
if(items.length > 0)
    items[0].value = "test";
于 2013-07-22T14:20:54.150 回答
0

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

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

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

var elem = document.getElementsByClassName("field_for_edit");
for (var i = 0; i < elem.length; i++)
{
  elem[i].value = "test";
}
于 2013-07-22T14:21:42.070 回答
0

先检查是否有这样的元素

    if(document.getElementById("ExtensionExtnum") != undefined)
    {
        document.getElementById("ExtensionExtnum").value = "test";
    }
于 2013-07-22T14:22:52.190 回答