javascript
  • jquery
  • opera
  • userscripts
  • 2012-04-21 32 views 1 likes 
    1

    我做了用戶腳本。我在Opera 11.62上測試這個。我有一個代碼:Opera腳本加載過於頻繁

    (
        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和廣告窗口的錯誤。
    加載站點上的所有腳本後,我可以加載一個userscript嗎?

    回答

    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

    這是非常有益的,謝謝:) 如果我會有這個腳本的問題,我寫在這裏。 – user948557 2012-04-21 21:49:49

    +4

    嗨,只是使用Stackoverflow的一個小技巧:請將上面的答案標記爲「接受」。這有助於我們知道問題得到了解答。 – hallvors 2012-04-27 08:10:22

    相關問題