MediaWiki:Common.js

来自维阿百科
霓虹灯鱼讨论 | 贡献2022年7月16日 (六) 13:46的版本
跳转至: 导航搜索

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */

    // Extension:MultimediaViewer的半透明化修改,用于保持背景文字处于原位,本应修改插件达成的,暂时先用JavaScript应急处理下
    function multimediaViewer() {
        var _scrollTo = window.scrollTo;
        var flag = location.hash.startsWith("#/media/");
        window.scrollTo = function scrollTo(x_option, y) {
            if (flag) {
                console.info("Prevent multimediaViewer called");
            } else {
                if (y === undefined) { _scrollTo(x_option); } else { _scrollTo(x_option, y); }
            }
        };
        setInterval(function () {
            $("a.image img[data-file-width], a.image img[data-file-height], .mw-mmv-filepage-buttons a.mw-mmv-view-expanded").not(".multimediaViewerScrollSet").each(function () {
                this.addEventListener("click", function (e) {
                    if ($(e.target).closest(".TabLabelText")[0] || $(e.target).closest("a").closest(".mw-customtoggle")[0]) {
                        e.preventDefault();
                        e.stopPropagation();
                        e.stopImmediatePropagation();
                        $($(e.target).closest(".TabLabelText")[0] || $(e.target).closest("a").closest(".mw-customtoggle")[0]).click();
                        return false;
                    }
                    flag = true;
                }, captureSupported ? {
                    capture: true,
                } : true);
                $(this).addClass("multimediaViewerScrollSet");
            });
            if ($(".mw-mmv-close")[0]) {
                if (mw.config.get("wgMultimediaViewerInjected") !== "on") {
                    mw.config.set("wgMultimediaViewerInjected", "on");
                    $(".mw-mmv-image").off("click")[0].addEventListener("click", function (e) {
                        if ($(e.target).is("img")) {
                            window.open($(e.target).attr("src").replace(/(vrp\.wiki\/images\/)thumb\/([a-z\d]+\/[a-z\d]+\/)([^/]+)\/\d+px-\3/i, "$1$2$3"), "_blank").focus();
                            e.preventDefault();
                            e.stopPropagation();
                            e.stopImmediatePropagation();
                            return false;
                        } else if ($(e.target).closest(".error-box")[0]) { return; }
                        $(".mw-mmv-close").click();
                    }, captureSupported ? {
                        capture: true,
                    } : true);
                }
            } else if (mw.config.get("wgMultimediaViewerInjected") === "on") {
                flag = false;
                mw.config.set("wgMultimediaViewerInjected", "off");
            }
        }, 137);
    }