|
|
| 第6行: |
第6行: |
| (function ($, mw) { //使用匿名函数以避免污染顶级变量 | | (function ($, mw) { //使用匿名函数以避免污染顶级变量 |
| /* 函数定义体 */ | | /* 函数定义体 */ |
| //Tabs
| | |
| function tabs() {
| | |
| var defaultStyle = {
| | /* 函数执行体 */ |
| purple: {
| | $(function () { |
| labelColor: " ", //anti check
| | |
| labelBackgroundColor: "#9070c0",
| |
| labelBorderColor: "#b090e0 #7050a0 #9070c0 #b090e0",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBorderColor: "#9070c0",
| |
| textBackgroundColor: "#f0edf5",
| |
| textPadding: "1em",
| |
| },
| |
| green: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#75c045",
| |
| labelBorderColor: "#90d060 #60b030 #75c045 #90d060",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBorderColor: "#75c045 #60b030 #60b030 #75c045",
| |
| textBackgroundColor: "#f5fffa",
| |
| textPadding: "1em",
| |
| },
| |
| red: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#FF0000",
| |
| labelBorderColor: "#FF8888 #CC0000 #FF0000 #FF8888",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBorderColor: "#FF0000 #CC0000 #CC0000 #FF0000",
| |
| textBackgroundColor: "#fffafa",
| |
| textPadding: "1em",
| |
| },
| |
| blue: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#5b8dd6",
| |
| labelBorderColor: "#88abde #3379de #5b8dd6 #88abde",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBackgroundColor: "#f0f8ff",
| |
| textBorderColor: "#5b8dd6 #3379de #3379de #5b8dd6",
| |
| textPadding: "1em",
| |
| },
| |
| yellow: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#ffe147",
| |
| labelBorderColor: "#ffe977 #ffd813 #ffe147 #ffe977",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBackgroundColor: "#fffce8",
| |
| textBorderColor: "#ffe147 #ffd813 #ffd813 #ffe147",
| |
| textPadding: "1em",
| |
| },
| |
| orange: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#ff9d42",
| |
| labelBorderColor: "#ffac5d #ff820e #ff9d42 #ffac5d",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBackgroundColor: "#ffeedd",
| |
| textBorderColor: "#ff9d42 #ff820e #ff820e #ff9d42",
| |
| textPadding: "1em",
| |
| },
| |
| black: {
| |
| labelColor: " ",
| |
| labelBackgroundColor: "#7f7f7f",
| |
| labelBorderColor: "#999999 #4c4c4c #7f7f7f #999999",
| |
| labelPadding: ".2em .3em .2em .3em",
| |
| textBackgroundColor: "#e5e5e5",
| |
| textBorderColor: "#7f7f7f #4c4c4c #4c4c4c #7f7f7f",
| |
| textPadding: "1em",
| |
| },
| |
| };
| |
| $("body").addClass("tab");
| |
| // A Class
| |
| function StyleSheet() {}
| |
| StyleSheet.prototype.getOwnPropertyNamesLength = function getOwnPropertyNamesLength() {
| |
| return Object.getOwnPropertyNames(this).length;
| |
| };
| |
| String.prototype.toLowerFirstCase = function toLowerFirstCase() {
| |
| return this[0].toLowerCase() + this.substring(1);
| |
| };
| |
| $(".Tabs").each(function() {
| |
| if ($(this).children(".TabLabel")[0]) { return true; }
| |
| var self = $(this),
| |
| classList = Array.from(this.classList).filter(function(n) { return n in defaultStyle; }),
| |
| data = $.extend({
| |
| labelPadding: null,
| |
| labelBorderColor: null,
| |
| labelColor: null,
| |
| labelBackgroundColor: $("#content").css("background-color"),
| |
| textPadding: null,
| |
| textBorderColor: null,
| |
| textBackgroundColor: null,
| |
| defaultTab: 1,
| |
| }, classList[0] ? defaultStyle[classList[0]] || {} : {}, this.dataset || {}),
| |
| tabLabel = self.append('<div class="TabLabel"></div>').children(".TabLabel"),
| |
| tabContent = self.append('<div class="TabContent"></div>').children(".TabContent"),
| |
| labelPadding = data.labelPadding,
| |
| labelColor = data.labelColor,
| |
| styleSheet = {
| |
| label: new StyleSheet(),
| |
| text: new StyleSheet(),
| |
| },
| |
| defaultTab = parseInt(data.defaultTab);
| |
| self.children(".Tab").each(function() {
| |
| if ($(this).children(".TabLabelText").text().replace(/\s/g, "").length || $(this).children(".TabLabelText").children().length) {
| |
| $(this).children(".TabLabelText").appendTo(tabLabel);
| |
| $(this).children(".TabContentText").appendTo(self.children(".TabContent"));
| |
| }
| |
| $(this).remove();
| |
| });
| |
| if (isNaN(defaultTab) || defaultTab <= 0 || defaultTab > tabLabel.children(".TabLabelText").length) { defaultTab = 1; }
| |
| tabLabel.children(".TabLabelText").on("click", function() {
| |
| var label = $(this);
| |
| label.addClass("selected").siblings().removeClass("selected").css({
| |
| "border-color": "transparent",
| |
| "background-color": "inherit",
| |
| });
| |
| tabContent.children(".TabContentText").eq(tabLabel.children(".TabLabelText").index(label)).addClass("selected").siblings().removeClass("selected").removeAttr("style");
| |
| if (styleSheet.label.getOwnPropertyNamesLength()) { label.css(styleSheet.label); }
| |
| }).eq(defaultTab - 1).click();
| |
| if (labelPadding) { tabLabel.children(".TabLabelText").css("padding", labelPadding); }
| |
| ["labelBorderColor", "labelBackgroundColor", "textPadding", "textBorderColor", "textBackgroundColor"].forEach(function(n) {
| |
| var target = /^label/.test(n) ? "label" : "text",
| |
| key = n.replace(target, "").toLowerFirstCase();
| |
| styleSheet[target][key] = data[n];
| |
| });
| |
| if (labelColor) {
| |
| styleSheet.label.borderTopColor = labelColor;
| |
|
| |
| } else if (styleSheet.label.borderColor) {
| |
| styleSheet.label.borderTopColor = "green";
| |
| }
| |
| tabLabel.find(".selected").click();
| |
| if (styleSheet.text.getOwnPropertyNamesLength()) { tabContent.css(styleSheet.text); }
| |
| if (data.autoWidth === "yes") { self.css("display", "inline-block"); }
| |
| });
| |
| }
| |
| //用户资料页相关
| |
| function isUserProfile() {
| |
| return mw.config.get('wgCanonicalSpecialPageName') === "UserProfile" && mw.config.get('wgArticleId') === "0";
| |
| }
| |
| //页顶提示模板相关 | |
| function commonBoxs() { | |
| if (window.mw && !!mw.config.get('wgNamespaceNumber')) return;
| |
| var contentParent = $('#mw-content-text')[0] ? $('#mw-content-text') : $('#content'),
| |
| commonBoxes = contentParent.find('.common-box');
| |
| if (!commonBoxes[0]) return;
| |
| var commonBoxContainer = $('<div id="commonBoxContainer"><div id="commonBoxInfo"></div></div>').prependTo(contentParent),
| |
| commonBoxList = $('<div id="commonBoxList"></div>').appendTo('#commonBoxInfo');
| |
| commonBoxes.each(function () {
| |
| var commonBoxButton = $('<div class="commonBoxButton"></div>').appendTo(commonBoxList),
| |
| commonBox = $(this);
| |
| commonBoxButton.data('element', commonBox).css({
| |
| 'border-color': commonBox.css('border-left-color'),
| |
| 'background-image': 'url(' + commonBox.find('tbody > tr > td:first-child img').prop('src') + ')',
| |
| }).on('click', function () {
| |
| if (commonBox.is(':visible')[0]) {
| |
| commonBoxes.hide();
| |
| $(this).add($(this).siblings()).removeClass('current');
| |
| commonBoxList.removeClass('open');
| |
| } else {
| |
| commonBoxes.filter(':visible').not(commonBox).hide();
| |
| commonBox.show();
| |
| $(this).toggleClass('current', commonBox.is(':visible')).siblings().removeClass('current');
| |
| commonBoxList.toggleClass('open', commonBox.is(':visible'));
| |
| }
| |
| });
| |
| }).appendTo(commonBoxContainer).hide();
| |
| }
| |
| //页顶提示模板相关
| |
| commonBoxs();
| |
| //用户资料页
| |
| if (isUserProfile()) {
| |
| var cardContainer = $('.card-container'),
| |
| containerImage = cardContainer.find('.card'),
| |
| containerImageFile = containerImage.find('a.image'),
| |
| containerImageCaption = containerImage.find('.caption');
| |
| containerImageCaption.css("padding", "0 8px");
| |
| containerImageFile.before('<div id="#containerImage" class="listThumb list-thumb-placeholder" style="text-align: center;"><img src="http://static.mengniang.org/common/a/a4/Placeholder-upload.png" style="height:32px" /></div>');
| |
| }
| |
| //黑幕 | | //黑幕 |
| $('.heimu a').on("click", function () { | | $('.heimu a').on("click", function () { |
| 第191行: |
第20行: |
| $('.mw-collapsible').makeCollapsible(); | | $('.mw-collapsible').makeCollapsible(); |
| }); | | }); |
| //链接提示
| |
| linkConfirm();
| |
|
| |
|
| //防滥用即将删除
| |
| if (!mw.config.get('wgUserGroups').includes('sysop') && !mw.config.get('wgUserGroups').includes('patroller')) {
| |
| setInterval(function () {
| |
| if ($('#wikitext-editor')[0]) {
| |
| var target = $('#wikitext-editor');
| |
| if (target.data('isTrusted') !== true) {
| |
| target.data('isTrusted', true);
| |
| $('.editor-overlay').css('z-index', 3);
| |
| antiAbuse(target[0], $('.editor-overlay .header .header-action button.continue')[0], undefined);
| |
| }
| |
| }
| |
| }, 1000);
| |
| }
| |
| }); | | }); |
| })(jQuery, mediaWiki); //立即执行匿名函数并传递原始变量 | | })(jQuery, mediaWiki); //立即执行匿名函数并传递原始变量 |
| // </pre> | | // </pre> |