1

ユーザースクリプトを作成しました。これを Opera 11.62 でテストします。私はコードをもっている:

(
    function() {
        var headID = document.getElementsByTagName("head")[0];         
        var newScript = document.createElement('script');
        newScript.type = 'text/javascript';
        newScript.id = 'myjQuery';
        newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
        headID.appendChild(newScript);

        newScript.addEventListener('load', function (e) {
            jQuery (
                function($) {
                    alert('loaded');
                }
            );          
        },false);

        newScript.removeEventListener('load');
    }
)();

私の問題は、アラート タイトルのドメインが毎回異なるアラート メッセージが何度も表示されることです。

Facebook と広告ウィンドウのせいだとわかっています。
サイト上のすべてのスクリプトが読み込まれた後で、ユーザースクリプトを読み込むことはできますか?

4

1 に答える 1

5

問題は、Opera が iframe ごとにスクリプトを実行していることにあるようです。このコードをスクリプトの先頭に追加すると、それが解消されます。

if (window.top != window.self)  //-- Don't run on frames or iframes.
    return;


また、Opera が期待する方法でスクリプトのターゲットを設定しているかどうかも明確ではありません。

スクリプトを Greasemonkey モードで実行していない限り、次のようにドメイン/URL センシングによってコードがラップされていることを確認してください。

if (location.hostname.indexOf('example.com') != -1) {
    // YOUR CODE HERE
}

Opera マニュアルの「スクリプトのロード」を参照してください。

于 2012-04-21T20:21:31.833 に答える