2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:NHJR/common.js

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码?_=1来访问最新页面。
添加代码后的本页地址如下:-{R|https://moegirl.icu/User:NHJR/common.js?_=1}-
(function ($, mw) {

//加载内链脚本
function loadLocal(path, type){
    var pageTitle = encodeURIComponent(path);
    mw.loader.load("https://zh.moegirl.org.cn/index.php?title=" + pageTitle + "&action=raw&ctype=" + type, type);
}

//是否为移动版
var isMobile = window.location.href.indexOf("mzh.moegirl.org") != -1;
var isEditPage = window.location.href.indexOf("action=edit") != -1;
var isDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

console.log("加载环境:   移动版:" + (isMobile ? "是" : "否") + "  编辑页:" + (isEditPage ? "是" : "否"));

function mobile(onMobile){
    if(isMobile){
        onMobile();
    }
}

function desktop(onDesktop){
    if(!isMobile){
        onDesktop();
    }
}

//添加Navbox
function addNavbox(){
    var pageName = mw.config.get("wgPageName");
    $.get("https://mzh.moegirl.org.cn/api.php",{action:"parse",page:pageName,format:"json"},function(data,status){
        if(status == "success"){
            var desktopView = $(JSON.parse(data.replace("\"*\"","\"data\"")).parse.text.data);
            var navbox = desktopView.find(".navbox");
            navbox.each(function(){
                //查论编
                var viewTemplateLink = $(this).find("div.hlist.navbar").first();
                var templateView = $("<div class=\"plainlinks myNavbar\">[本模板:</div>");
                templateView.append($(viewTemplateLink.html()));
                templateView.append("]");
                templateView.find("span").removeAttr("style");
                var wrapper = $("<div class=\"mobileNavboxWrap\"></div>");
                wrapper.append(templateView);
                wrapper.append($(this));
                $("div.mw-parser-output").first().append(wrapper);
                if($(this).hasClass("largeNavbox")){
                	$(this).find("th.navbox-title").first().on("DOMNodeInserted", function(event){
                		console.log(event);
                		var target = $(event.target);
                		var currentNavbox = target.parents(".navbox").first();
                		if(currentNavbox.hasClass("largeNavboxButtonMoved")){
                			return;
                		}
                		if(target.hasClass("largeNavbox-toggle")){
                			target.attr("eventIndex", function(n,v){
                				v = v || 0;
                				return v * 1 + 1;
                			});
                			// 我也不知道为什么但是这个事件就是tmd会发生三次
                			if(target.attr("eventIndex") == "3"){
                				currentNavbox.parent().find(".myNavbar").append(target);
                				currentNavbox.addClass("largeNavboxButtonMoved");
                				// 原代码中css()在所有append()之后
                				// 所以直接设置没有用
                				// 直接暴力timeout,又不是不能用
                				setTimeout(function (){
                					$(".largeNavbox-toggle").removeAttr("style");
                				},100);
                			}
                		}
                	});
                }
            });
            navbox.ready(function (){
            	mw.loader.using("jquery.makeCollapsible").then(function (){
            		$(".mw-collapsible").makeCollapsible();
            	});
            });
        }else{
            alert("发生甚么事了");
        }
    },"text");
}

mobile(function(){
    if($("div.mw-parser-output")[0] !== undefined){
        var currentNavbox = $(document).find(".navbox");
        if(currentNavbox.length === 0){
            addNavbox();
        }
    }
});

function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] == variable){return pair[1];}
       }
       return undefined;
}

mobile(function(){
	loadLocal("User:NHJR/Mobile.css","text/css");
});

mobile(function(){
	$(".content table[style*=float]").css("width","100% !important");
});

mobile(function(){
	var forceDark = getQueryVariable("forceDark");
	if(forceDark == "0" || forceDark == "false"){
		forceDark = false;
	}
	if(forceDark === undefined){
		forceDark = isDark;
	}
	if(forceDark){
		//alert("夜间模式!");
		makeDark();
	}
});

function makeDark(){
	loadLocal("User:NHJR/MobileDark.css", "text/css");
}

window.makeDark = makeDark;
})(jQuery, mediaWiki);