javascript
  • jquery
  • opera
  • userscripts
  • 2012-04-21 40 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

    相关问题