MediaWiki:Gadget-Tabs.js

MediaWiki interface page
Revision as of 01:19, 17 June 2020 by Chao (talk | contribs) (preserve hash when initializing each tab)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$('div.tabdiv').each(function() {
	var hash = window.location.hash;
    var tabs = $(this);
    tabs.find('> ul a').removeAttr('href');
    tabs.find('> ul > li').click(function() {
        var li = $(this);
        var index = li.index();
        li.addClass('active').siblings('li').removeClass('active');
        tabs.children('div').eq(index).show().siblings('div').hide();
        window.location.hash = $(li).attr("id");
    });
    tabs.find('> ul > li:not(".hidden")').first().click();
    window.location.hash = hash;
});

(function(window, $) {
    var tabbers = window.location.hash;
  
    tabbers = tabbers.replace(/tabtag/, '@');
    tabbers = tabbers.split('/') || [];

    while(tabbers.length) {
        var route = tabbers.shift() || '';
        route = route.split('@');
        var child = route[1] || '';
        var parent = route[0] || '';
        $(parent + 'tabtag' + child).click();
    }
})(window, $);