Greasy Fork is available in English.

NGA User Script Loader

NGA User Script Loader 实现两个功能:1.在页面未加载 jQuery 时加载 jQuery ;2.在点击“加载上一页/下一页”按钮后重新运行用户脚本(需脚本自身配合)。

Устаревшая версия на 01.03.2018. Перейти к последней версии.

Этот скрипт недоступен для установки пользователем. Он является библиотекой, которая подключается к другим скриптам мета-ключом // @require https://update.greasyfork.org/scripts/39014/255211/NGA%20User%20Script%20Loader.js

// ==UserScript==
// @name         NGA User Script Loader
// @namespace    https://greasyfork.org/zh-CN/scripts/39014-nga-user-script-loader
// @version      0.0.2.20180302
// @icon         http://bbs.nga.cn/favicon.ico
// @description  NGA User Script Loader 实现两个功能:1.在页面未加载 jQuery 时加载 jQuery ;2.在点击“加载上一页/下一页”按钮后重新运行用户脚本(需脚本自身配合)。
// @author       AgLandy
// @include      /^https?:\/\/(bbs\.ngacn\.cc|nga\.178\.com|bbs\.nga\.cn)/
// @grant        none
// ==/UserScript==

(function(){

    if(!window.commonui)
        commonui = {};

    try{
        if(commonui.userScriptLoader.$)
            return;
    }
    catch(e){
        let btn = 'a[title^="加载"]',
            init = function($){
            commonui.userScriptLoader = {
                $: $,
                userScriptData: {},
                reload: function(){
                    let usl = commonui.userScriptLoader;
                    if(usl.mo)
                        return;
                    usl.mo = new MutationObserver(function(){
                        $(btn).bind('click.userScriptLoader', usl.reload);
                        $.each(usl.userScriptData, function(k, v){
                            v();
                        });
                        usl.mo.disconnect();
                        delete usl.mo;
                    });
                    usl.mo.observe($('div#mc')[0], {
                        childList: true,
                        subtree: true,
                    });
                }
            };
            $(btn).bind('click.userScriptLoader', commonui.userScriptLoader.reload);
        };
        if(typeof jQuery == 'undefined'){
            let s = document.createElement('script');
            s.type = 'text/javascript';
            s.src = 'https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js';
            s.onload = s.onreadystatechange = function(){
                if(!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState){
                    init(jQuery.noConflict());
                    this.onload = this.onreadystatechange = null;
                }
            };
            document.head.appendChild(s);
        }
        else
            init(jQuery);
    }

})();