3

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

我想制作一个自动提交表单的 Greasemonkey 脚本,因为我已经有一个批处理文件在启动时启动我所有的正常应用程序,这将允许我在它每天 20 分钟启动时离开 PC; )

该页面只有一种形式:

<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 中真正编码过,所以任何帮助都将不胜感激。我正在使用用于单击按钮的现有用户脚本。CtrlEnter

显然我不在乎它是虚拟的“点击”还是只是提交功能的触发器,因为我会说它们是一样的,不是吗?

4

2 回答 2

6

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

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

document.forms[0].submit();
于 2012-07-19T07:12:41.710 回答
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 脚本始终具有的包含等。

于 2012-07-19T07:42:46.860 回答