置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

User:BearBin/js/ReplaceTextEnhancer.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.uk/User:BearBin/js/ReplaceTextEnhancer.js?_=1}-
if (mw.config.get("wgCanonicalSpecialPageName") === "ReplaceText") {
    mw.loader.using(["oojs-ui", "oojs-ui-core", "oojs-ui.styles.icons-editing-advanced", "oojs-ui.styles.icons-editing-list"]).then(() => {
        // 复制文本
        const copyText = (text, widget) => {
            const lebelText = widget.label;
            navigator.clipboard.writeText(text).then(() => {
                widget.setLabel("复制成功");
                setTimeout(() => {
                    widget.setLabel(lebelText);
                }, 3000);
            }, (err) => {
                widget.setLabel(`复制失败:${err}`);
                setTimeout(() => {
                    widget.setLabel(lebelText);
                }, 3000);
            });
        };

        // 给每个页面后添加主站链接及其编辑链接
        $("#mw-content-text label>a").each((_, ele) => {
            const $ele = $(ele);
            $ele.after($('<span style="margin-left:1em;user-select:none;"></span>').append(
                "[",
                `<a href="//zh.moegirl.org.cn/${encodeURIComponent($ele.text())}" target="_blank">主站页面</a>`,
                " | ",
                `<a href="//zh.moegirl.org.cn/${encodeURIComponent($ele.text())}?action=edit" target="_blank">编辑</a>`,
                "]",
            ));
        });

        // 复制页面列表,一行一个
        const copyListButton = new OO.ui.ButtonWidget({
            label: "复制列表",
            icon: "listBullet",
        });
        copyListButton.on("click", () => {
            const pageList = [];
            $("#choose_pages a[title]").each((_, ele) => {
                pageList.push(ele.innerText);
            });
            copyText(pageList.join("\n"), copyListButton);
        });

        // 复制wikitext形式的列表
        const copyWikiTextButton = new OO.ui.ButtonWidget({
            label: "复制wikitext",
            icon: "wikiText",
        });
        copyWikiTextButton.on("click", () => {
            const pageList = [];
            $("#choose_pages a[title]").each((_, ele) => {
                pageList.push(ele.innerText);
            });
            copyText(`*[[${pageList.join("]]\n*[[")}]]`, copyWikiTextButton);
        });

        // 添加到按钮后
        $(".oo-ui-fieldLayout-align-inline").eq(0).before(
            copyListButton.$element,
            copyWikiTextButton.$element,
        );
    });
}