使用Greasemonkey的提交表单(Submit form using Greasemonkey

2019-09-19 18:29发布

第一次,每一天,我尝试在工作访问一个网页,我重定向到与IT准则内部托管的网页,并包含两个按钮的形式“同意”和“不同意”。 点击“同意”,然后让这一天的到来外部网络连接,并发送你你最初想要浏览的网站。

我希望做一个的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之前编码,因此任何帮助,将不胜感激。 我玩弄现有userscript使用CTRL + ENTER单击按钮。

很显然,我不在乎,如果它是一个虚拟的“点击”,或只是一个提交操作的触发器,因为我说,他们是同样的事情,不是吗?

Answer 1:

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

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

document.forms[0].submit();


Answer 2:

接到了一个朋友,谁说这应该工作,虽然它并不像从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脚本总是有。



文章来源: Submit form using Greasemonkey