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

User:Bhsd/widget/tagFilter.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: 配合jquery.makeCollapsible,进一步隐藏不存在可见标签的dl
 * @Author: [[User:Bhsd]]
 */
"use strict";
/* global mw, $ */
(() => {
    const detectCollapse = (mutations) => {
        mutations.forEach(ele => {
            const $dl = $(ele.target).closest( 'dl' );
            $dl.toggle( $dl.find( 'dd > :not(.mw-collapsed)' ).length > 0 );
        });
    },
        main = () => {
        mw.widget = mw.widget || {};
        if (mw.widget.tagFilter) { return; }
        // 因为dl折叠需要在jquery.makeCollapsible执行完毕之后,这里借助MutationObserver判断正确时机
        const observer = new MutationObserver( detectCollapse );
        mw.hook( 'wikipage.content' ).add($content => {
            observer.disconnect();
            console.log('Hook: wikipage.content, 更新对年表标签的监视');
            $content.find( 'dd > .mw-collapsible:has( .chronology )' ).each(function() {
                observer.observe(this, {attributes: true, attributeFilter: ['class']});
            });
        });
        mw.widget.tagFilter = true;
    };
    if (window.jQuery) { main(); }
    else { window.addEventListener('jquery', main); }
}) ();
//</nowiki>
// [[category:jQuery小部件]] {{DEFAULTSORT:TagFilter}}