-1

グリースモンキーを使用して、既存の Web ページのフォームを操作しています。(自動入力)

フォームのアクション属性はそれ自体であり、送信されると、送信ボタンの上に成功メッセージが出力されます。

私がやろうとしているのは、フォームが送信されたら、ブラウザを別のページにリダイレクトしたいということです。しかし、これはグリースモンキーでは機能しません。何も起こりません。

ページがいつ送信されたかを検出するコードを書きましたが、フォームが送信された後は機能しません。

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 を介してフォームを送信しているようです。

その場合、スクリプトは再起動しません。代わりに、成功メッセージのページを監視します。1 つの方法を次に示します。

成功メッセージが次のようになっているとします。

<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") sendPost("goback","yes")。また、設定しているように見えgobackますが、チェックし goingbackています- これは問題になる可能性があります。質問に記載されているような動作を引き起こす問題ではありませんが。

于 2013-02-10T20:03:07.280 に答える