【发布时间】:2012-07-18 07:39:22
【问题描述】:
每天第一次尝试访问工作中的网页时,我会被重定向到一个内部托管的网页,其中包含 IT 指南和一个带有“同意”和“不同意”两个按钮的表单。点击“同意”然后允许当天的外部互联网访问并将您转到您最初寻找的网站。
我想制作一个自动提交表单的 Greasemonkey 脚本,因为我已经有一个批处理文件,可以在启动时启动所有正常的应用程序,这将允许我在 PC 每天启动 20 分钟时离开-向上 ;)
页面只有一种形式:
<form method="post">
<input type="submit" value="I Agree" class="agree" onsubmit="submitonce(this)" />
<input type="button" onclick="javascript:window.close();" value="I Disagree"
class="disagree"/>
</form>
不确定是否重要,因为我只需要点击,但函数submitonce是:
function submitonce(theform) {
//if IE 4+ or NS 6+
console.log("Submitting");
if (document.all || document.getElementById) {
//screen thru every element in the form, and hunt down "submit" and "reset"
for (i = 0; i < theform.length; i++) {
var tempobj = theform.elements[i];
if (tempobj.type.toLowerCase() == "submit" ||
tempobj.type.toLowerCase() == "reset")
//disable em
tempobj.disabled = true;
}
}
}
我有其余的来源,但看起来没有其他相关内容。我以前没有在 Greasemonkey/JS 中真正编码过,所以任何帮助都将不胜感激。我正在玩an existing userscript,它使用 CtrlEnter 来单击按钮。
显然我不在乎它是虚拟的“点击”还是只是提交功能的触发器,因为我想说它们是一样的,不是吗?
【问题讨论】:
-
你打算在什么浏览器上使用它?
-
它们不一样,
submit()不会将提交按钮的名称和值与数据一起发送。 -
再看看你的 html,我认为
input元素没有onsubmit属性。 -
它将在 Firefox 中使用,尽管我想这种简单的东西也可以在 Chrome 中使用。至于 onsubmit 属性,这不是我的代码,但嘿,也许这个函数实际上什么也没做,它只是提交移动用户:p
-
@vbevan,函数
submitonce()只是禁用submit和reset按钮。没有任何实际的表单提交。无论如何,你最好的选择是 dda 的答案。
标签: javascript forms submit greasemonkey