2012-04-21 24 views
1

私はユーザースクリプトを作成しました。 Opera 11.62でこれをテストします。Opera userscriptがあまりにも多くロードされています

(
    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と広告の窓口であることを知っています。
サイトのすべてのスクリプトが読み込まれた後にユーザースクリプトを読み込むことはできますか?

答えて

5

Operaは各iframeのスクリプトを起動しているようです。あなたのスクリプトの先頭にこのコードを追加すると、そのをクリアする必要があります

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


また、それはあなたがスクリプトの目標オペラが期待する方法を設定していることは明らかではありません。

あなたがrunning the script in Greasemonkey modeでない限り、あなたのコードはそうのような検出ドメイン/ URLによってラップされていることを確認し:

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

"Loading scripts" in the Opera manualを参照してください。

+0

非常に役に立って、ありがとう:) 私はこのスクリプトに問題がある場合、私はここに書きました。こんにちは、ちょうどStackoverflowを使用してヒント:上記の答えを "受け入れ"とマークしてください。 – user948557

+4

これは、質問が答えられたことを私たちに知らせるのに役立ちます。 – hallvors

関連する問題