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

User:Bhsd/widget/nav.js

来自LLWiki
跳转到导航 跳转到搜索

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

  • 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),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
//<nowiki>
// 用于[[Widget:游戏主界面]],可以使用ES6语法
/**
 * @Function: 移除插入图片造成的指向自身的导航链接
 * @Dependencies: mediawiki.util
 * @Author: [[User:Bhsd]]
 */
"use strict";
/* global mw, $ */
(() => {
    let href, isMobile;
    const main = ($content) => {
        const $nav = $content.find( `.start-screen${ isMobile ? '' : ':has(img)' }` );
        if ($nav.length === 0) { return; }
        console.log('Hook: wikipage.content, 开始处理导航链接');
        // 1. 移除图片造成的指向自身的链接,注意手机版的懒加载
        $nav.find( `a[href="${href}"]` ).removeAttr('href title').addClass('mw-selflink selflink');
        // 2. 手机版强制加载图片,并将导航移出折叠段落
        if (!isMobile) { return; }
        $nav.find( '.lazy-image-placeholder' ).replaceWith(function() { return $(this).prev( 'noscript' ).text(); });
        $nav.appendTo( $content.find( '.mw-parser-output' ) )
            .animate({scrollLeft: ($nav[0].scrollWidth - $nav.outerWidth()) / 2}, 'slow'); // 窄屏上初始滚动一半
    },
        handler = () => {
        mw.widget = mw.widget || {};
        if (mw.widget.nav) { return; }
        isMobile = mw.config.get('skin') == 'minerva';
        mw.loader.using( 'mediawiki.util' ).then(() => {
            href = mw.util.getUrl();
            mw.hook( 'wikipage.content' ).add( main );
        });
        mw.widget.nav = true;
    };
    if (window.jQuery) { handler(); }
    else { window.addEventListener('jquery', handler); }
}) ();
//</nowiki>
// [[category:jQuery小部件]] {{DEFAULTSORT:nav}}