5

ページ上の他のよりも先にGreasemonkeyスクリプトを実行することは可能ですか?

私は知っていますが、これはタグ@run-at document-startの直後に実行されているようです。<HTML>通常、これは問題ではありませんが、以下の例のようにページの形式が正しくない場合、私にできることは何もないようです。

何か提案やアイデアをいただければ幸いです。ありがとう!

<script>alert('This is an annoying message.');</script>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
        <HEAD>
...etc...
4

3 に答える 3

4

実際に@run-at document-start 、ページから何かを取得する前に GM スクリプトをほとんど実行します。

あなたの場合、次のコードは と連携して動作し@run-at document-startます:

_oldAlert           = alert;
unsafeWindow.alert  = function () {};

/*-- Optionally, wait for the DOM, then set an onload handler to restore
    alert().
*/
于 2012-01-22T11:18:01.383 に答える
2

HTML では解析中にスクリプトを実行する必要があるか、まったく実行しない必要があるため、これは不可能です。たとえば、これは許可されています。

<script> document.write('<!'+'--'); </script>

ブラウザがこのスクリプトを実行せずに通過すると、まったく別のドキュメントが表示されるため、スクリプトを実行する前に HTML ドキュメントの DOM を分析することはできません。

Opera はイベントを発生させることでUserJSのこの問題を解決し、 UserJSBeforeScriptが最後の瞬間にスクリプトを変更/削除できるようにします。

于 2009-04-04T18:06:22.173 に答える
-1

やってみました:

(function() {
    var yourFunction = function() 
    {
       // ...
    }
    window.addEventListener("load", yourFunction, false);
})();
于 2009-04-02T03:25:14.357 に答える