MediaWiki:Common.js:修订间差异

HW
HW留言 | 贡献
HW
HW留言 | 贡献
 
(未显示同一用户的3个中间版本)
第8行: 第8行:
                     return;
                     return;
                 }
                 }
                // 1. 排除 #p-personal 区域
                if ( $link.closest( '#p-views' ).length || $link.closest( '#p-cactions' ).length || $link.closest( '#p-tb' ).length || $link.closest( '#right-navigation' ).length || $link.closest( '#p-personal' ).length ) {
const excludeContainers = [
                    return;
'#p-views',
                }
'#p-cactions',
'#p-tb',
'#right-navigation',
'#p-personal',
'.mw-portlet-personal'
];
// 检查是否匹配任意一个排除容器
const isExcluded = excludeContainers.some(selector => $link.closest(selector).length);
if (isExcluded) {
return;
}
 
                 var href = $link.attr( 'href' );
                 var href = $link.attr( 'href' );
                 if ( !href ) return;
                 if ( !href ) return;
第49行: 第60行:
                         $link.before( $avatarWrapper );
                         $link.before( $avatarWrapper );


                        // 2. 修复:仅登录用户,且仅针对当前登录用户的头像设置 CSS
                        // 检查是否未登录
                         if ( mw.user.isAnon() ) {
                         if ( mw.user.isAnon() ) {
                             return;
                             return;
                         }
                         }
                        // 检查当前处理的用户名是否等于登录用户名
                         var currentUserName = mw.user.getName();
                         var currentUserName = mw.user.getName();
                         if ( userName !== currentUserName ) {
                         if ( userName !== currentUserName ) {
第63行: 第71行:
                         var avatarUrl = avatarImg.attr( 'src' );
                         var avatarUrl = avatarImg.attr( 'src' );
                         if ( avatarUrl && avatarUrl !== '/images/avatars/default_l.gif' ) {
                         if ( avatarUrl && avatarUrl !== '/images/avatars/default_l.gif' ) {
                            // 获取或创建 Style 标签
                             var $styleTag = $( '#dynamic-avatar-style' );
                             var $styleTag = $( '#dynamic-avatar-style' );
                             if ( !$styleTag.length ) {
                             if ( !$styleTag.length ) {
                                 $styleTag = $( '<style id="dynamic-avatar-style"></style>' ).appendTo( 'head' );
                                 $styleTag = $( '<style id="dynamic-avatar-style"></style>' ).appendTo( 'head' );
                             }
                             }
                            // 更新 CSS 内容(确保使用的是当前用户的头像)
                             var css = '.minerva-icon--userAvatarOutline { background-image: url("' + avatarUrl + '"); background-repeat: no-repeat; background-size: contain; width: 30px; height: 30px; mask-image: unset; }';
                             var css = '.minerva-icon--userAvatarOutline { background-image: url("' + avatarUrl + '"); background-repeat: no-repeat; background-size: contain; width: 30px; height: 30px; mask-image: unset; }';
                             $styleTag.text( css );
                             $styleTag.text( css );
第87行: 第93行:
     } );
     } );
} );
} );
//重定向
(function() {
    const url = new URL(window.location.href);
    const pathname = url.pathname;
    const searchParams = url.searchParams;
   
    const isIndexPhp = pathname === '/index.php';
    const hasOnlyTitleParam = searchParams.size === 1 && searchParams.has('title');
    const titleValue = searchParams.get('title') || '';
    const hasValidTitle = titleValue.trim() !== '';
    if (isIndexPhp && hasOnlyTitleParam && hasValidTitle) {
        const targetUrl = `/wiki/${encodeURIComponent(titleValue)}`;
        window.location.replace(targetUrl);
    }
})();