Opera用户脚本加载过于频繁

Opera userscript is loading too often

本文关键字:于频繁 加载 脚本 用户 Opera      更新时间:2023-09-26

我做了用户脚本。我在 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和广告窗口的错。
我可以在加载站点上的所有脚本后加载用户脚本吗?

似乎问题在于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 手册中的"加载脚本"。