-1

我正在使用greasemonkey 来操作现有网页上的表单。(自动填充)

表单的 action 属性是它本身,一旦提交,它会在提交按钮上方打印一条成功消息。

我想要做的是,一旦提交表单 - 我想将浏览器重定向到另一个页面。但这不适用于greasemonkey。什么都没发生。

我写了一个代码来检测页面何时提交,但在表单提交后不起作用。

getData("goingback"); //pulls the goingback data from database using ajax

if (goingback == "yes") {
    window.location = "index.php";
} else {
//business as usual

 // manipulate the form and get it ready for submission

sendPost("goback","yes"); // this function sends data to a php to be handled via ajax

//ajax stores the data in database

//the form is submitted using a timer and .click();

var submission = Math.floor(Math.random() * 10000) + 5000;
setTimeout(function() {
$('button[value="submit"]:first').click();
}, submission);
}

我怎样才能做到这一点?

提前致谢

4

1 回答 1

0

问题不清楚;我们可能需要查看实际页面本身。但是,听起来页面是通过 AJAX 提交表单,而不是完整的帖子。

在这种情况下,您的脚本不会重新启动。相反,请监视页面以获取成功消息。这是一种方法:

假设成功消息是这样的:

<div id="post_status">
    <h2>Some one set us up the (data) bomb!</h2>
</div>

<h2>表单帖子之后添加的位置。

然后此代码将在帖子发生后重定向:

var postChkTimer = setInterval (checkForPostDoneNode, 200);

function checkForPostDoneNode () {
    var postDoneNode = $("#post_status h2");
    if (postDoneNode.length) {
        window.location.assign ("index.php");
    }
}


不需要那个getData("goingback") or sendPost("goback","yes")。看起来正在设置goback但正在检查 goingback- 这可能是一个问题。尽管这不是导致问题中描述的行为的问题。

于 2013-02-10T20:03:07.280 回答