4

AJAX によってドキュメントが読み込まれるたびに、後で Tampermonkey にスクリプトを強制的に実行させるにはどうすればよいですか?

スクリプトでこれらの要素にアクセスして変更したいと考えています。しかし、設定ページで に設定@run-atdocument-endても、ドキュメントが完全に読み込まれていない間に実行されます。そして、それはこの特定のウェブサイトで起こります!!

私はこれらの方法を試しましたが、失敗しました:

  1. オンロード イベント。
  2. すべてのドキュメントがロードされているかどうかを確認してから、スクリプトの実行を続行するステートメントを試みwhileましたが、クラッシュして無限ループに陥りました。
  3. 関数を実行するためにコンソールを試しました (ただし、コンソールからはアクセスできません)。

それで、私は何をしますか?

4

1 に答える 1

7

必要なコンテンツは AJAX によって読み込まれるため、スクリプトでAJAX 補正技術を使用する必要があります。

これを行う最も簡単な方法は、waitForKeyElements()を使用することです。何かのようなもの:

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

waitForKeyElements (
    "jQUERY SELECTOR TO THE NODE(S) YOU WANT",
    changeFontColor
);

function changeFontColor (jNode) {
    jNode.css ("color", "red");
}
于 2013-08-02T02:14:24.167 に答える