2012-07-19 68 views
3

我第一次尝试访问工作中的网页时,我被重定向到一个内部托管的网页,其中包含IT指南和一个带有两个按钮“同意”和“不同意”的表单, 。点击“同意”,然后允许当天外部互联网访问,并将您发送到您最初寻找的网站。使用Greasemonkey提交表格

我想制作一个自动提交表单的Greasemonkey脚本,因为我已经有一个批处理文件启动所有我的普通应用程序在启动时,这将允许我离开电脑,而它每天做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,使用Ctrl输入点击按钮。

显然我不在乎它是虚拟的“点击”还是只是提交函数的触发器,因为我会说他们是同一件事情,不是吗?

+0

你打算使用什么浏览器? – 2012-07-19 07:01:36

+0

它们不一样,'submit()'不会将提交按钮的名称和值与数据一起发送。 – Adi 2012-07-19 07:06:26

+1

再次看看你的html,我不认为'input'元素有'onsubmit'属性。 – 2012-07-19 07:09:40

回答

5

这应该是一个简单的工作:

// ==UserScript== 
// @name   myscript 
// @namespace  whatever 
// @include  http://path to the internal page 
// ==/UserScript== 

document.forms[0].submit(); 
+0

谢谢,我会在早上登录时尝试。 – vbevan 2012-07-19 07:43:18

+2

并请回报:-) – dda 2012-07-19 14:55:03

+2

工作很好,谢谢你的帮助。 – vbevan 2012-07-20 08:15:15

1

接到了一个朋友,谁说这应该工作,虽然它并不像从DDA的回答简单一些帮助。显然,这个作品在Chrome中:

function ClicktheButton(obj) { 
    var evt = document.createEvent("MouseEvents"); 
    evt.initMouseEvent("click", true, true, window, 
    0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    var cancelled = !obj.dispatchEvent(evt);  
/* 

    if(cancelled) { 
    // A handler called preventDefault 
    alert("cancelled"); 
    } else { 
    // None of the handlers called preventDefault 
    alert("not cancelled"); 
    } 
    */ 
} 

var StupidButton = document.querySelector('input[type="submit"][value="I Agree!"]'); 
ClicktheButton(StupidButton); 

而且这也需要包括等认为的GreaseMonkey脚本总是有。

+2

如果这个工作,并且dda的答案没有,那么这个问题省略了一些关键的javascript。 ''的'onsubmit'已经看起来像一个转录错误,因为这不是有效的HTML,并且在大多数(所有?)浏览器中都不会触发。 – 2012-07-19 07:46:52