【问题标题】:Inserting value into test box with Javascript使用Javascript将值插入测试框
【发布时间】:2013-07-22 14:16:23
【问题描述】:

我正在使用 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
*/

我已经获得了可以在其他网站上使用的此类代码,用于自动输入用户名和密码。我不明白为什么它在这里不起作用。

【问题讨论】:

    标签: javascript insert greasemonkey


    【解决方案1】:
    var items = document.getElementsByName("ExtensionExtnum");
    if(items.length > 0)
        items[0].value = "test";
    

    【讨论】:

    • 我试过了。我不再收到 Exception: document.getElementsByName("ExtensionExtnum").item(0) is null 错误,但它仍然没有填充该字段。我想知道这是否只是网站后端的一些问题。
    • 1.如果名称为“ExtensionExtnum”的元素在 html 中呈现,请查看检查元素; 2. 如果元素被渲染,那么你没有正确调用这个方法。例如当你的代码执行时 dom 还没有完全准备好,把你的代码放在 DOMContentLoaded 事件处理程序中
    • 但是我在 GreaseMonkey 中运行它——也就是说,我已经完全加载了页面并单击“执行”,所以它应该在所有内容都加载后运行。我对 Javascript 还很陌生,所以请原谅我的无知 :)
    • @user2607110,你是什么意思你“点击'执行'”?这不是 Greasemonkey 脚本的工作方式。这个执行按钮在哪里?
    【解决方案2】:

    先检查有没有这样的元素

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

    【讨论】:

    • 我试过了。我不再收到 Exception: document.getElementsByName("ExtensionExtnum").item(0) is null 错误,但它仍然没有填充该字段。我想知道这是否只是网站后端的一些问题。
    【解决方案3】:

    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";
    }
    

    【讨论】:

    • 我试过了。我不再收到 Exception: document.getElementsByName("ExtensionExtnum").item(0) is null 错误,但它仍然没有填充该字段。我想知道这是否只是网站后端的一些问题。
    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2011-12-21
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多