MediaWiki:Common.js:修订间差异

HW
HW留言 | 贡献
HW
HW留言 | 贡献
第1行: 第1行:
 
// 用户名前显示头像
//用户名前显示头像
mw.loader.using( 'mediawiki.util', function () {
mw.loader.using( 'mediawiki.util', function () {
     $( document ).ready( function () {
     $( document ).ready( function () {
        // 选择用户链接
         $( 'a[href*="/wiki/User:"], a[href*="/wiki/%E7%94%A8%E6%88%B7:"]' ).each( function () {
         $( 'a[href*="/wiki/User:"], a[href*="/wiki/%E7%94%A8%E6%88%B7:"]' ).each( function () {
             var $link = $( this );
             var $link = $( this );
           
            // 防止重复添加
             if ( $link.prev( '.sp-avatar-wrapper' ).length ) {
             if ( $link.prev( '.sp-avatar-wrapper' ).length ) {
                 return;
                 return;
             }
             }
            // 提取用户名
             var href = $link.attr( 'href' );
             var href = $link.attr( 'href' );
             var userName = decodeURIComponent( href.split( '/wiki/' )[1] ).replace( /^User:|^用户:/, '' );
             var userName = decodeURIComponent( href.split( '/wiki/' )[1] ).replace( /^User:|^用户:/, '' );
           
 
             var $tempDiv = $( '<div>' );
             // 调用 API 获取高清头像
             new mw.Api().get( {
             new mw.Api().get( {
                 action: 'parse',
                 action: 'query',
                 text: '{{#avatar:' + userName + '}}',
                 list: 'users',
                 contentmodel: 'wikitext',
                ususers: userName,
                 disablelimitreport: true,
                 usprop: 'avatar',
                 disableeditsection: true
                 // 请求 128px 或 256px 的原图 (根据你的 wiki 配置调整)
                 usavatarsize: 128
             } ).done( function ( data ) {
             } ).done( function ( data ) {
                 if ( data.parse && data.parse.text ) {
                 if ( data.query && data.query.users && data.query.users[0] && data.query.users[0].avatar ) {
                     var avatarHtml = data.parse.text[ '*' ];
                     var avatarUrl = data.query.users[0].avatar;
                     var $avatarWrapper = $( '<span class="sp-avatar-wrapper" style="vertical-align: middle; margin-right: 4px; display: inline-block;width:1em;height:1em;"></span>' ).html( avatarHtml );
                   
                    // 创建图片元素
                    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 );
                     $link.before( $avatarWrapper );
                 }
                 }