MediaWiki:Common.js:修订间差异

跳到导航 跳到搜索
添加8,339字节 、​ 2021年3月22日 (星期一)
无编辑摘要
imported>=海豚=
无编辑摘要
imported>=海豚=
无编辑摘要
(未显示同一用户的3个中间版本)
第19行: 第19行:
      window.addEventListener("test", null, options);
      window.addEventListener("test", null, options);
    } catch (err) { /* */ }
    } catch (err) { /* */ }
   /* 检查是否为维护组成员 */
   var wgUserGroups = mw.config.get("wgUserGroups");
   var isMGPMGUser = wgUserGroups.includes("patroller") || wgUserGroups.includes("sysop");
   /* 修正验证码 */
   function tcc() {
     var tcBtn = document.getElementById("TencentCaptcha");
     if (tcBtn && !tcBtn.disabled) {
       var originText = tcBtn.innerText;
       tcBtn.innerText = "正在加载验证码,请稍候……";
       var wpCaptchaWord = document.getElementById("wpCaptchaWord");
       var wpCaptchaId = document.getElementById("wpCaptchaId");
       var c = setInterval(function () {
         if (typeof window.TencentCaptcha === "function") {
           clearInterval(c);
           if (!tcBtn.disabled) {
             new window.TencentCaptcha(document.getElementById("TencentCaptcha"));
             tcBtn.innerText = originText;
           }
         }
       }, 100);
       document.getElementById("wpSave").addEventListener("click", function (e) {
         if (!tcBtn.disabled && (!wpCaptchaWord.value || !wpCaptchaId.value)) {
           alert("请点击验证按钮,完成验证后再提交");
           e.preventDefault();
           e.stopImmediatePropagation();
           e.stopPropagation();
         }
       }, {
         capture: true
       });
     }
   }
    //滚动公告
    //滚动公告
    function autoScroll(obj) {
    function autoScroll(obj) {
第50行: 第82行:
    }
    }
      autoScroll("#scrollDiv");
      autoScroll("#scrollDiv");
   /* 图片相关 */
   (function () {
     if (["Listfiles"].includes(mw.config.get("wgCanonicalSpecialPageName"))) {
       location.hostname = location.hostname.replace("commons.moegirl.org.cn", "www.hmoegirl.com");
     }
   })();
    /* MediaViewer#populateStatsFromXhr 错误屏蔽 */
    /* MediaViewer#populateStatsFromXhr 错误屏蔽 */
    (function() {
    (function() {
第106行: 第144行:
      }, 137);
      }, 137);
    }
    }
     //修复代码编辑器$.ucFirst引用错误
     $.extend({
       ucFirst: function (_s) {
         var s = _s + "";
         return s.charAt(0).toUpperCase() + s.substring(1);
       },
     });
    //子页面页顶链接
    //子页面页顶链接
    function subpage_links() {
    function subpage_links() {
第148行: 第193行:
      $(".mw-spcontent > p:nth-child(1), .mw-spcontent > p:nth-child(2), .mw-spcontent > p:nth-child(7)").hide();
      $(".mw-spcontent > p:nth-child(1), .mw-spcontent > p:nth-child(2), .mw-spcontent > p:nth-child(7)").hide();
    }
    }
     //防滥用即将删除模板
   function antiAbuseListener(textarea, event) {
     var filters = [
       "{{即将删除",
       "{{即將刪除",
       "{{挂删",
       "{{模板:即将删除",
       "{{模板:即將刪除",
       "{{template:即将删除",
       "{{template:即將刪除",
       "[[分类:即将删除的页面",
       "[[分類:即將刪除的頁面",
       "[[category:即将删除的页面",
       "[[category:即將刪除的頁面",
       "{{文件转移到萌娘共享",
       "{{文件轉移到萌娘共享",
       "{{模板:文件转移到萌娘共享",
       "{{模板:文件轉移到萌娘共享",
       "{{template:文件转移到萌娘共享",
       "{{template:文件轉移到萌娘共享",
       "[[分类:需要删除执行员删除的页面",
       "[[分類:需要刪除執行員刪除的頁面",
       "[[category:需要删除执行员删除的页面",
       "[[category:需要刪除執行員刪除的頁面",
     ];
     var text1 = textarea.value;
     text1 = text1.replace(/<\/?(?:nowiki|noinclude)>/g, "");
     text1 = text1.replace(/<(onlyinclude|includeonly)>.*?<\/\1>/g, "");
     var text2 = textarea.value;
     text2 = text2.replace(/<\/?(?:onlyinclude|includeonly)>/g, "");
     text2 = text2.replace(/<(nowiki|noinclude)>.*?<\/\1>/g, "");
     var results = [];
     for (var i = 0, l = filters.length; i < l; i++) {
       var regExp = new RegExp(filters[i].replace(/\[/g, "\\["), "i");
       if (regExp.test(text1) || regExp.test(text2)) { results.push(filters[i]); }
     }
     if (results.length > 0) {
       var messageDialog = new OO.ui.MessageDialog();
       var windowManager = new OO.ui.WindowManager();
       $("body").append(windowManager.$element);
       windowManager.addWindows([messageDialog]);
       messageDialog.title.$label.html("H萌娘提醒您<br>您的编辑包含禁止内容!");
       messageDialog.message.$label.html("<br>您提交的内容包含以下部分,被禁止提交:<br><br><ul>" + results.map(function (result) {
         return "<li>" + result + "</li>";
       }).join("") + '</ul><br><br>如果您认为您的编辑无误,请在自行保存编辑内容后到<a target="_blank" rel="nofollow noreferrer noopener" class="external text" href="' + mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '讨论版</a>提问。');
       windowManager.openWindow(messageDialog, {
         actions: [{
           action: "accept",
           label: "我知道了",
           flags: "primary",
         }],
       });
       event.preventDefault();
       event.stopImmediatePropagation();
       event.stopPropagation();
       return false;
     }
   }
   function antiAbuse(textarea, submitButton, form) {
     mw.loader.using(["oojs-ui"]).then(function () {
       if (submitButton) {
         submitButton.addEventListener("click", function (e) {
           antiAbuseListener(textarea, e);
         }, captureSupported ? {
           capture: true,
         } : true);
       }
       if (form) {
         form.addEventListener("submit", function (e) {
           antiAbuseListener(textarea, e);
         }, captureSupported ? {
           capture: true,
         } : true);
       }
     });
   }
    //防滥用即将删除
     if (!isMGPMGUser) {
       setInterval(function () {
         if ($(".Wikiplus-InterBox")[0]) {
           var targetBox = $(".Wikiplus-InterBox");
           var textarea = $("#Wikiplus-Quickedit")[0];
           var submitButton = $("#Wikiplus-Quickedit-Submit");
           if (textarea && targetBox.data("isTrusted") !== true) {
             targetBox.data("isTrusted", true);
             targetBox.css("z-index", 100);
             antiAbuse(textarea, submitButton[0], undefined);
             var events = $._data(textarea, "events");
             if (events && events.keydown) {
               events.keydown.sort(function (a, b) {
                 return a.guid - b.guid;
               });
               events.keydown[0].handler = function (e) {
                 if (e.ctrlKey && e.which === 83) {
                   if (e.shiftKey) {
                     $("#Wikiplus-Quickedit-MinorEdit").click();
                   }
                   if (antiAbuseListener(textarea, e) !== false) {
                     submitButton.click();
                     e.preventDefault();
                     e.stopPropagation();
                   }
                 }
               };
             }
           }
         }
         if ($("form#editform")[0]) {
           var targetForm = $("form#editform");
           if (targetForm.data("isTrusted") !== true) {
             targetForm.data("isTrusted", true);
             antiAbuse($("#wpTextbox1")[0], $("#wpSave")[0], targetForm[0]);
           }
         }
       }, 1000);
     }
    //编辑请求
    //编辑请求
    function editRequest() {
    function editRequest() {
第222行: 第383行:
        });
        });
      }, 200);
      }, 200);
     //图片地址
     mw.loader.using("mediawiki.Uri").then(function () {
       setInterval(function () {
         $(document.querySelectorAll('img[src*="//img.moegirl.org/"]:not(.org-changed), img[src*="//commons.moegirl.org/"]:not(.org-changed)')).each(function (_, ele) {
           try {
             var url = new mw.Uri(ele.src);
             if (["img.moegirl.org", "commons.moegirl.org"].includes(url.host)) {
               url.host += ".cn";
               ele.src = url;
             }
             ele.classList.add("org-changed");
           } catch (e) { }
         });
       }, 200);
     });
      //修正hash跳转错误
      //修正hash跳转错误
      if ($(".mw-collapsible")[0]) {
      if ($(".mw-collapsible")[0]) {
匿名用户

导航菜单