1

私は Greasemonkey スクリプトを開発しています。このスクリプトはテーブル内のいくつかの要素を変更します。ただし、テーブルのボタンをクリックすると、非同期ポストバックが発生し、テーブルが更新されます。

だから、私の要素もリフレッシュされます。スクリプトを再度実行してテーブル内の新しい要素を変更できるように、ポストバックが発生したことを確認するにはどうすればよいですか? (このページは Telerik を使用しています。)

4

2 に答える 2

1

わざわざポストバックをチェックしようとしないでください。これは、ほとんどの場合、面倒な方法です。あなたはテーブルの内容に関心があり、それを監視します。

見る:

  1. 同じページで Greasemonkey スクリプトを複数回実行しますか?
  2. AJAX リクエストで Greasemonkey スクリプトを起動する
  3. DOM ミューテーション イベントを使用せずに AJAX ノードの挿入を検出するにはどうすればよいですか?

および他のいくつか。

于 2013-02-25T15:25:47.950 に答える
0

Brock Adams が彼の答えで言っているように、私はテーブルを監視することに決め、次のコードを書きました。

function repairInputEvents() {
    for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
        //Add event to buttons that cause postback.
        document.getElementsByTagName("input")[i].addEventListener("click", function() {

            //Run the following just before postback.
            document.getElementsByClassName("table")[0].setAttribute("title", "old");
            var checkAjaxInterval = setInterval(function() { checkAjax(); }, 1000);

            function checkAjax() {
                if (document.getElementsByClassName("table")[0].getAttribute("title") != "old") {
                    clearInterval(checkAjaxInterval);
                    repairInputEvents();
                    repairSelectEvents();
                }
            }

        });

    }
}

//First run
repairInputEvents();
repairSelectEvents();
于 2013-02-26T09:15:16.423 に答える