使用Javascript将值插入测试框

使用Javascript将值插入测试框,javascript,insert,greasemonkey,Javascript,Insert,Greasemonkey,我使用Greasemonkey在文本框中插入一个值,但我一辈子都无法让它工作。我右键单击Firefox中的文本框并检查元素。它显示“用于编辑的输入#ExtensionExtnum.field_” 我回来了: /* Exception: document.getElementsByName("ExtensionExtnum").item(0) is null @Scratchpad:8 */ 我已经在其他网站上使用过这种代码,用于自动输入用户名和密码。我不明白为什么它在这里不起作用 在用于编辑的

我使用Greasemonkey在文本框中插入一个值,但我一辈子都无法让它工作。我右键单击Firefox中的文本框并检查元素。它显示“用于编辑的输入#ExtensionExtnum.field_”

我回来了:

/*
Exception: document.getElementsByName("ExtensionExtnum").item(0) is null
@Scratchpad:8
*/
我已经在其他网站上使用过这种代码,用于自动输入用户名和密码。我不明白为什么它在这里不起作用

在用于编辑的
input#ExtensionExtnum.field_中,
ExtensionExtnum
是元素ID,而不是其名称。因此,您必须使用:

var items = document.getElementsByName("ExtensionExtnum");
if(items.length > 0)
    items[0].value = "test";
var elem = document.getElementById("ExtensionExtnum");
if ( elem !== null) elem.value = "test";
如果要为编辑设置类
字段\u的所有元素的值,请使用:

var elem = document.getElementsByClassName("field_for_edit");
for (var i = 0; i < elem.length; i++)
{
  elem[i].value = "test";
}
var elem=document.getElementsByClassName(“用于编辑的字段”);
对于(变量i=0;i
首先检查是否存在这样的元素

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

我试过了。我不再得到异常:document.getElementsByName(“ExtensionExtnum”)。项(0)为空错误,但它仍然没有填充字段。我想知道这是否只是网站后端的一些问题。如果名为“ExtensionExtnum”的元素是以html呈现的,请参阅with inspect元素;2.若元素被呈现,那个么您并没有在正确的时间调用此方法。例如,当您的代码执行dom未完全就绪时,请将代码放入
DOMContentLoaded
event handler中,但我正在GreaseMonkey中运行此操作-也就是说,我已完全加载页面并单击“执行”,因此它应该在所有内容都已加载后运行。我对Javascript相当陌生,请原谅我的无知:)@user2607110,“单击‘执行’是什么意思?这不是Greasemonkey脚本的工作方式。这个执行按钮在哪里?我试过了。我不再得到异常:document.getElementsByName(“ExtensionExtnum”)。项(0)为空错误,但它仍然没有填充字段。我想知道是不是网站后端有什么问题。我试过了。我不再得到异常:document.getElementsByName(“ExtensionExtnum”)。项(0)为空错误,但它仍然没有填充字段。我想知道这是否只是网站后端的一些问题。
    if(document.getElementById("ExtensionExtnum") != undefined)
    {
        document.getElementById("ExtensionExtnum").value = "test";
    }