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

网站测试中,如需帮助或提出建议
联系维护员 @天明

MediaWiki:Common.js:修订间差异

MediaWiki界面页面
天明留言 | 贡献
无编辑摘要
天明留言 | 贡献
无编辑摘要
第30行: 第30行:
} );
} );


/* 增加外部搜索推荐提示 */
mw.loader.using( [ 'mediawiki.util' ], function () {
mw.loader.using( [ 'mediawiki.util' ], function () {
    $( function () {


         // 1. 只在 Special:Search 页面运行
    function injectExternalSearch( $content ) {
 
         // 1. 只处理搜索页
         if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Search' ) {
         if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Search' ) {
             return;
             return;
第44行: 第44行:
         }
         }


         var $info = $( '.mw-search-results-info' );
         var $info = $content.find( '.mw-search-results-info' );
         if ( !$info.length ) {
         if ( !$info.length ) {
             return;
             return;
第75行: 第75行:


         links.forEach( function ( link, index ) {
         links.forEach( function ( link, index ) {
            var $a = $( '<a>' )
                .attr( {
                    href: link.url,
                    target: '_blank',
                    rel: 'nofollow noopener'
                } )
                .text( link.name );
             if ( index > 0 ) {
             if ( index > 0 ) {
                 $p.append( ' / ' );
                 $p.append( ' / ' );
             }
             }


             $p.append( $a );
             $p.append(
                $( '<a>' )
                    .attr( {
                        href: link.url,
                        target: '_blank',
                        rel: 'nofollow noopener'
                    } )
                    .text( link.name )
            );
         } );
         } );


        // 4. 插入到 info 区块末尾(紧跟 create link 后)
         $info.append( $p );
         $info.append( $p );
    }
    // 4. 在内容加载 / 刷新后执行
    mw.hook( 'wikipage.content' ).add( injectExternalSearch );


    } );
} );
} );

2025年12月21日 (日) 19:19的版本

/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */

/* 为表格自动加载默认排序规则 */
jQuery( document ).ready( function ( $ ) {

    // 确保 MediaWiki 自带的表格排序模块已加载
    mw.loader.using( 'jquery.tablesorter', function () {

        // 遍历页面中所有可排序表格
        $( 'table.sortable' ).each( function () {

            var $table = $( this );

            // 如果表格已经指定了默认排序(例如通过 data-sort-initial)
            // 则尊重作者意图,不进行干预
            if ( $table.data( 'sort-initialized' ) ) {
                return;
            }

            // 对表格设置默认排序:
            // 第一列,升序
            $table.tablesorter( {
                sortList: [ [ 0, 0 ] ]
            } );

            // 标记该表格已被初始化,避免重复执行
            $table.data( 'sort-initialized', true );
        } );
    } );
} );

mw.loader.using( [ 'mediawiki.util' ], function () {

    function injectExternalSearch( $content ) {

        // 1. 只处理搜索页
        if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Search' ) {
            return;
        }

        var searchTerm = mw.config.get( 'wgSearchTerms' );
        if ( !searchTerm ) {
            return;
        }

        var $info = $content.find( '.mw-search-results-info' );
        if ( !$info.length ) {
            return;
        }

        // 2. 防止重复注入
        if ( $info.find( '.mw-search-external' ).length ) {
            return;
        }

        // 3. 构造外部搜索链接
        var links = [
            {
                name: 'Google',
                url: 'https://www.google.com/search?q=' + encodeURIComponent( searchTerm )
            },
            {
                name: 'Bing',
                url: 'https://www.bing.com/search?q=' + encodeURIComponent( searchTerm )
            },
            {
                name: '百度',
                url: 'https://www.baidu.com/s?wd=' + encodeURIComponent( searchTerm )
            }
        ];

        var $p = $( '<p>' )
            .addClass( 'mw-search-external' )
            .text( '或使用外部搜索:' );

        links.forEach( function ( link, index ) {
            if ( index > 0 ) {
                $p.append( ' / ' );
            }

            $p.append(
                $( '<a>' )
                    .attr( {
                        href: link.url,
                        target: '_blank',
                        rel: 'nofollow noopener'
                    } )
                    .text( link.name )
            );
        } );

        $info.append( $p );
    }

    // 4. 在内容加载 / 刷新后执行
    mw.hook( 'wikipage.content' ).add( injectExternalSearch );

} );