跳转到内容

MediaWiki:Gadget-UserLinkAvatar.js

来自萌娘共享
AnnAngela-dbot留言 | 贡献2025年7月24日 (四) 20:46的版本 (代码变动:103d1a56 - feat: rename (#594) by U:AnnAngela, co-authored-by: GH:github-actions[bot])

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
/**
 * -------------------------------------------------------------------------
 * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 * -------------------------------------------------------------------------
 */
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/UserLinkAvatar/Gadget-UserLinkAvatar.js|user=[[U:AnnAngela]]|co-authors=GH:github-actions[bot]|longId=103d1a563ea4ccc8ff29fb55c9bcd88329a56eb5|shortId=103d1a56|summary=feat: rename (#594)|body=<nowiki>Co-authored-by: github-actions[bot] <41898282+github-actions[bot]📧users.noreply.github.com></nowiki>}}'; 

/* <pre> */

"use strict";
(() => {
    const DEFAULT_AVATAR = "https://img.moegirl.org.cn/moehime.jpg";
    const checkIfAvatarLoaded = (el) => typeof el.dataset.userAvatarLoaded !== "undefined";
    const attachAvatarToUserLink = (target) => {
        if (checkIfAvatarLoaded(target)) {
            return;
        }
        const userName = target.textContent.trim();
        const avatar = target.dataset.userAvatar;
        const avatarLink = document.createElement("a");
        const img = document.createElement("img");
        img.loading = "lazy";
        img.src = avatar;
        img.alt = `${userName}的头像`;
        img.classList.add("userlink-avatar-small");
        img.addEventListener("error", () => {
            if (img.src !== DEFAULT_AVATAR) {
                img.src = DEFAULT_AVATAR;
            }
            else {
                avatarLink.remove();
            }
        });
        avatarLink.classList.add("userlink-avatar");
        avatarLink.href = `https://commons.moegirl.org.cn/Special:ViewAvatar?user=${userName}`;
        avatarLink.target = "_blank";
        avatarLink.title = "查看头像";
        avatarLink.appendChild(img);
        avatarLink.addEventListener("click", (e) => {
            e.stopPropagation();
        });
        target.insertAdjacentElement("beforebegin", avatarLink);
        target.dataset.userAvatarLoaded = "1";
        return avatarLink;
    };
    mw.hook("wikipage.content").add(($content) => {
        $content.find(".mw-userlink[data-user-avatar]").each((_, el) => {
            attachAvatarToUserLink(el);
        });
    });
})(); 

/* </pre> */