尝试访问页面内的javascript元素

尝试访问页面内的javascript元素,javascript,Javascript,我希望有人能帮助我。我试图访问网页中的文本框,以便编写脚本,例如在字段中放置文本、选中框并单击“提交”,以自动化员工的工作流程。这很让人困惑,因为我找不到允许我操作表单的名称/id/任何东西。我可以看到我试图使用Firebug获得的字段名称(“历史[注释]”)和id,如果有帮助的话(“历史\注释”),但无论我做什么,表单都不会被操纵。根据我编写的其他脚本,此Applescript: do JavaScript "document.forms[1].history_comment.value='T

我希望有人能帮助我。我试图访问网页中的文本框,以便编写脚本,例如在字段中放置文本、选中框并单击“提交”,以自动化员工的工作流程。这很让人困惑,因为我找不到允许我操作表单的名称/id/任何东西。我可以看到我试图使用Firebug获得的字段名称(“历史[注释]”)和id,如果有帮助的话(“历史\注释”),但无论我做什么,表单都不会被操纵。根据我编写的其他脚本,此Applescript:

do JavaScript "document.forms[1].history_comment.value='Testing';" in document 1
应该这样做,告诉浏览器将“测试”放在适当的字段中。我已经替换了我认为可能是它想要的其他名称,并尝试引用任何其他形式(形式[2],形式[3]),所有这些都是徒劳的。我实际上有点困惑,因为HTML中没有语句,所以可能是我搞砸了


我已经在上发布了一个表单的HTML转储(当然有虚假的信息),以防任何一个善良的灵魂都能给我一些指导。我的目标是能够将信息放入评论字段。我是否可以运行一个脚本来告诉我表单中每个元素的完整名称(就浏览器而言)?

由于您的元素是一个文本区域,应该这样做:

document.getElementById('history_comment')。innerHTML='HELLO'


使用innerHTML而不是value

如果可以使用jquery,那么使用以下命令就可以非常轻松地完成

$("history_comment").val("HELLO");

JavaScript应该是:

document.getElementById("history_comment").value='Testing';

document.forms是非标准的,与示例代码中的情况一样,如果元素不在表单中,则会失败。这在AJAX应用程序中非常常见,也是避免使用document.forms的另一个很好的理由。

Kikuchyo编写的内容,尽管在
form
标记中包含
textarea
等表单元素实际上是不正确的。如果(如您所建议的)您希望以编程方式提交表单,则还需要
form
标记。由于您已经在访问该文本框,因此可以从javascript函数中的该文本框获取表单:

var thetext=document.getElementById('history_comment');
thetext.value='whatever you want to put in there';
thetext.form.submit(); // all form elements have a 'form' property
您可以在复选框状态下获取
document.getElementById('history_notify')。选中
;它是一个布尔值,因此将其设置为
true
false
,并直接在条件语句中使用它


当然,如果(比如,查看表单,您可能想要)您想要AJAX提交,那么您需要查看您正在使用的任何包装器库的文档。

不,value工作正常,是标准的,并且不需要转义字符,例如<和&。虽然我也不提倡使用document.forms,事实并非如此;document.forms是DOM级别1规范的一部分。