LLWiki正在建设中,欢迎加入我们

MediaWiki:Mobile.js

来自LLWiki
Bhsd讨论 | 贡献2020年11月23日 (一) 08:02的版本
跳转到导航 跳转到搜索

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
/* 这里的任何JavaScript将为使用移动版网站的用户加载 */
//<nowiki>
// 经测试不可使用ES6语法
"use strict";
mw.hook( 'wikipage.content' ).add(function( $content ) {
    const collapsibleContent = $content.find( '.mw-collapsible' ),
        sortableContent = $content.find( 'table.sortable' );
    // 折叠
    /* 引自[[moegirl:mediawiki:mobile.js]] */
    if (collapsibleContent.length) {
        console.log('Hook: wikipage.content,开始执行折叠');
        mw.loader.using( 'jquery.makeCollapsible' ).then(function() { collapsibleContent.makeCollapsible(); });
    }
    // 表格排序
    if (sortableContent.length) {
        console.log('Hook: wikipage.content,开始执行表格排序');
        mw.loader.using( 'jquery.tablesorter' ).then(function() { sortableContent.tablesorter(); });
    }
});

$(function() {
    // 快速编辑工具
    if (['edit', 'submit'].includes( mw.config.get('wgAction') )) {
        $( '.mw-editTools' ).insertBefore( '#wpTextbox1' );
    }
});

if (mw.config.get( 'wgCanonicalSpecialPageName' ) == "Recentchanges") {
    // 修改filter
    mw.hook( 'structuredChangeFilters.ui.initialized' ).add(function() {
        console.log('Hook: structuredChangeFilters.ui.initialized,开始修改filter');
        mw.loader.using( ['mediawiki.Uri', 'ext.gadget.site-lib'] ).then(function() {
            const uri = new mw.Uri(),
                invert = uri.query.invert || 0,
                node = $( '.mw-rcfilters-ui-itemMenuOptionWidget-view-namespaces' ).first().clone()
                .insertAfter( $( '.mw-rcfilters-ui-filterMenuSectionOptionWidget' ).first() )
                .attr('id', 'ooui-invert').removeClass( 'oo-ui-element-hidden' )
                .on('click', function() { window.location.href = uri.extend({ invert: 1 - invert }); });
            node.find( 'span.oo-ui-labelElement-label' ).text( wgULS("排除选项", "排除所選") );
            node.find( 'input' ).prop('checked', invert > 0)
                .next().addClass( 'oo-ui-image-invert' );
        });
    });
}

console.log( 'setInterval: 等待移动版菜单加载完毕' );
const timerStart = mw.now(),
    timer = setInterval(function() {
    if ($('.menu ul').length === 0) { return; }
    clearInterval(timer);
    mw.hook( 'mobile.menu' ).fire( $('.menu') );
    console.log('End setInterval: 移动版菜单加载完毕,用时 ' + (mw.now() - timerStart) + ' ms');
}, 200);

/* Mobile Navmenu by GFwiki */
$.when($.ready, mw.loader.using( 'ext.gadget.site-lib' )).then(function() {
    const script = mw.config.get( 'wgScript' ),
        pagename = mw.config.get( 'wgPageName' ),
        pageid = mw.config.get( 'wgArticleId' ),
        nsid = mw.config.get( 'wgNamespaceNumber' ),
        title = mw.config.get( 'wgTitle' );
    $('<div>').load(script + '/MediaWiki:MFSidebar #mw-content-text ul', function() {
        const nav = $(this).children();
        if (pageid > 0) {
            nav.append('<li><a href="' + script + '/Special:链入页面/' + pagename + '">' +
                '<i class="fa fa-quote-right"></i>' +
                '<span>' + wgULS("链入页面", "連結至此的頁面") + '</span>' +
            '</a></li>' +
            '<li><a href="' + script + '/Special:链出更改/' + pagename + '">' +
                '<i class="fa fa-share-alt"></i>' +
                '<span>' + wgULS("相关更改", "相關變更") + '</span>' +
            '</a></li>' +
            '<li><a href="' + script + '?title=Special:前缀索引&prefix=' + title + '/&namespace=' + nsid + '&stripprefix=1">' +
                '<i class="fa fa-folder-open"></i>' +
                '<span>' + wgULS("子页面", "子頁面") + '</span>' +
            '</a></li>');
        }
        mw.hook( 'mobile.menu' ).add(function($menu) {
            console.log('Hook: mobile.menu,开始添加移动版菜单项');
            $menu.children( 'ul' ).first().after(nav);
        });
    });
});
//</nowiki>
// [[category:作为模块的小工具]] [[category:不可关闭的小工具]] [[category:手机版小工具]]
// {{DEFAULTSORT:*}}