MediaWiki:Gadget-UserLinkAvatar.js
外观
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-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> */
/**
* TODO: 悬浮大头像功能暂时还没做,暂未提供大头像的链接
*/ "use strict";
// <pre>
(function() {
var DEFAULT_AVATAR = "https://img.moegirl.org.cn/moehime.jpg";
/**
* @param {HTMLElement} el
*/ var checkIfAvatarLoaded = function(el) {
return typeof el.dataset.userAvatarLoaded !== "undefined";
};
/**
* @param {HTMLAnchorElement} target
*/ var attachAvatarToUserLink = function(target) {
if (checkIfAvatarLoaded(target)) {
return;
}
var userName = target.textContent.trim();
var avatar = target.dataset.userAvatar;
var avatarLink = document.createElement("a");
var img = document.createElement("img");
img.loading = "lazy";
img.src = avatar;
img.alt = "".concat(userName, "的头像");
img.classList.add("userlink-avatar-small");
img.addEventListener("error", function() {
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=".concat(userName);
avatarLink.target = "_blank";
avatarLink.title = "查看头像";
avatarLink.appendChild(img);
avatarLink.addEventListener("click", function(e) {
e.stopPropagation();
});
target.insertAdjacentElement("beforebegin", avatarLink);
target.dataset.userAvatarLoaded = "1";
return avatarLink;
};
mw.hook("wikipage.content").add(/**
* @param {JQuery<HTMLElement>} $content
*/ function($content) {
$content.find(".mw-userlink[data-user-avatar]").each(function(_, el) {
attachAvatarToUserLink(el);
});
});
})(); // </pre>
/* </pre> */