跳转到内容

MediaWiki:Common.js

来自失传媒体中文维基
HW留言 | 贡献2026年2月26日 (四) 09:44的版本

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
// 用户名前显示头像
mw.loader.using( 'mediawiki.util', function () {
    $( document ).ready( function () {
        // 选择用户链接
        $( 'a[href*="/wiki/User:"], a[href*="/wiki/%E7%94%A8%E6%88%B7:"]' ).each( function () {
            var $link = $( this );
            
            // 防止重复添加
            if ( $link.prev( '.sp-avatar-wrapper' ).length ) {
                return;
            }

            // 提取用户名
            var href = $link.attr( 'href' );
            var userName = decodeURIComponent( href.split( '/wiki/' )[1] ).replace( /^User:|^用户:/, '' );

            // 调用 API 获取高清头像
            new mw.Api().get( {
                action: 'query',
                list: 'users',
                ususers: userName,
                usprop: 'avatar',
                // 请求 128px 或 256px 的原图 (根据你的 wiki 配置调整)
                usavatarsize: 128 
            } ).done( function ( data ) {
                if ( data.query && data.query.users && data.query.users[0] && data.query.users[0].avatar ) {
                    var avatarUrl = data.query.users[0].avatar;
                    
                    // 创建图片元素
                    var $avatarImg = $( '<img>' ).attr( {
                        src: avatarUrl,
                        alt: userName,
                        style: 'vertical-align: middle; width: 20px; height: 20px; border-radius: 2px; object-fit: cover;'
                    } );

                    // 包裹元素并插入到链接前
                    var $avatarWrapper = $( '<span class="sp-avatar-wrapper" style="vertical-align: middle; margin-right: 4px; display: inline-block;"></span>' ).html( $avatarImg );
                    $link.before( $avatarWrapper );
                }
            } );
        } );
    } );
} );