MediaWiki:Gadget-UserLinkAvatar.js:修订间差异
外观
AnnAngela-dbot(留言 | 贡献) 代码变动:103d1a56 - feat: rename (#594) by U:AnnAngela, co-authored-by: GH:github-actions[bot] 标签:由机器人或全自动脚本执行的操作 |
AnnAngela-dbot(留言 | 贡献) 代码变动:103d1a56 - feat: rename (#594) by U:AnnAngela, co-authored-by: GH:github-actions[bot] 标签:由机器人或全自动脚本执行的操作 |
||
| 第8行: | 第8行: | ||
/* <pre> */ | /* <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)) { | if (checkIfAvatarLoaded(target)) { | ||
return; | 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.loading = "lazy"; | ||
img.src = avatar; | img.src = avatar; | ||
img.alt = | img.alt = `${userName}的头像`; | ||
img.classList.add("userlink-avatar-small"); | img.classList.add("userlink-avatar-small"); | ||
img.addEventListener("error", | img.addEventListener("error", () => { | ||
if (img.src !== DEFAULT_AVATAR) { | if (img.src !== DEFAULT_AVATAR) { | ||
img.src = DEFAULT_AVATAR; | img.src = DEFAULT_AVATAR; | ||
} else { | } | ||
else { | |||
avatarLink.remove(); | avatarLink.remove(); | ||
} | } | ||
}); | }); | ||
avatarLink.classList.add("userlink-avatar"); | avatarLink.classList.add("userlink-avatar"); | ||
avatarLink.href = | avatarLink.href = `https://commons.moegirl.org.cn/Special:ViewAvatar?user=${userName}`; | ||
avatarLink.target = "_blank"; | avatarLink.target = "_blank"; | ||
avatarLink.title = "查看头像"; | avatarLink.title = "查看头像"; | ||
avatarLink.appendChild(img); | avatarLink.appendChild(img); | ||
avatarLink.addEventListener("click", | avatarLink.addEventListener("click", (e) => { | ||
e.stopPropagation(); | e.stopPropagation(); | ||
}); | }); | ||
| 第52行: | 第44行: | ||
return avatarLink; | return avatarLink; | ||
}; | }; | ||
mw.hook("wikipage.content").add( | mw.hook("wikipage.content").add(($content) => { | ||
$content.find(".mw-userlink[data-user-avatar]").each((_, el) => { | |||
$content.find(".mw-userlink[data-user-avatar]").each( | |||
attachAvatarToUserLink(el); | attachAvatarToUserLink(el); | ||
}); | }); | ||
}); | }); | ||
})(); | })(); | ||
/* </pre> */ | /* </pre> */ | ||
2025年7月24日 (四) 20:46的版本
/**
* -------------------------------------------------------------------------
* !!! 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> */