打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

MediaWiki:Common.js

MediaWiki界面页面
WikiAdmin留言 | 贡献2026年4月14日 (二) 20:04的版本 (初始化)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
/**
 * MediaWiki:Common.js
 * 任务 6.3:未登录用户访问需要编辑权限的页面时,引导到主站登录
 * 将此内容粘贴到 Wiki 站的 MediaWiki:Common.js 页面
 */
( function () {
    'use strict';

    var MAIN_LOGIN_URL = 'https://dolshipmaker.vip/login.html';
    var WIKI_BASE_URL  = 'https://wiki.dolshipmaker.vip';

    /**
     * 检测当前是否为编辑/上传等需要登录的操作,
     * 若未登录则重定向到主站登录页。
     */
    function checkAuthForEditActions() {
        var action = mw.config.get( 'wgAction' );
        var isLoggedIn = mw.config.get( 'wgUserId' ) !== 0;

        if ( isLoggedIn ) {
            return;
        }

        // 需要登录的操作
        var protectedActions = [ 'edit', 'submit', 'upload' ];
        if ( protectedActions.indexOf( action ) !== -1 ) {
            var returnUrl = encodeURIComponent( window.location.href );
            window.location.href = MAIN_LOGIN_URL + '?redirect=' + returnUrl;
        }
    }

    /**
     * 为页面内的"编辑"链接添加登录引导
     */
    function patchEditLinks() {
        var isLoggedIn = mw.config.get( 'wgUserId' ) !== 0;
        if ( isLoggedIn ) {
            return;
        }

        $( 'a[href*="action=edit"], a[href*="veaction=edit"]' ).on( 'click', function ( e ) {
            e.preventDefault();
            var returnUrl = encodeURIComponent( window.location.href );
            window.location.href = MAIN_LOGIN_URL + '?redirect=' + returnUrl;
        } );
    }

    mw.loader.using( 'mediawiki.util' ).done( function () {
        checkAuthForEditActions();
        $( document ).ready( patchEditLinks );
    } );

}() );