Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
 
Line 66: Line 66:
         document.title = document.title + siteName;
         document.title = document.title + siteName;
     }
     }
});
// Clean up tab URLs in address bar
$(function() {
    var observer = new MutationObserver(function() {
        var hash = window.location.hash;
        if (hash && hash.indexOf('tabber-tabpanel-') !== -1) {
            var cleanName = hash.replace('#tabber-tabpanel-', '#').replace(/-\d+$/, '').replace(/_/g, ' ');
            history.replaceState(null, '', cleanName);
        }
    });
    observer.observe(document.body, { childList: true, subtree: true, attributes: true });
    window.addEventListener('hashchange', function() {
        var hash = window.location.hash;
        if (hash && hash.indexOf('tabber-tabpanel-') !== -1) {
            var cleanName = hash.replace('#tabber-tabpanel-', '#').replace(/-\d+$/, '').replace(/_/g, ' ');
            history.replaceState(null, '', cleanName);
        }
    });
});
});

Latest revision as of 18:41, 13 April 2026

/* Any JavaScript here will be loaded for all users on every page load. */
$(function() {
    $('[accesskey="t"]').removeAttr('accesskey');
    $('[accesskey="n"]').removeAttr('accesskey');
    $('#pt-mytalk').remove();
    $('#ca-talk').remove();
    $('#ca-addsection').remove();
});

$(function() {
    // Handle redirects with tab switching
    var $redirect = $('span.mw-redirectedfrom a');
    if ($redirect.length) {
        waitAndSwitchTab($redirect.text().trim());
    }

    // Handle hash-based tab switching
    if (window.location.hash && window.location.hash.indexOf('tabber-tabpanel') !== -1) {
        waitAndSwitchTab(null, window.location.hash.substring(1));
    }

    // Intercept search result clicks
    document.addEventListener('click', function(e) {
        var link = e.target.closest('a');
        if (!link) return;
        if (!link.closest('.citizen-typeahead')) return;

        var redirectLabel = link.querySelector('.citizen-typeahead__labelItem[title*="redirect from"]');
        if (redirectLabel) {
            var match = redirectLabel.getAttribute('title').match(/redirect from (.+)\)/);
            if (match) {
                e.preventDefault();
                e.stopPropagation();
                window.location.href = '/' + encodeURIComponent(match[1]);
            }
        }
    }, true);

    function waitAndSwitchTab(from, panelId) {
        var observer = new MutationObserver(function(mutations, obs) {
            var panels = document.querySelectorAll('[role="tabpanel"]');
            if (panels.length > 0) {
                if (panelId) {
                    var tab = document.querySelector('[aria-controls="' + panelId + '"]');
                    if (tab) tab.click();
                } else if (from) {
                    panels.forEach(function(panel) {
                        if (panel.textContent.indexOf(from) !== -1) {
                            var id = panel.getAttribute('id');
                            var tab = document.querySelector('[aria-controls="' + id + '"]');
                            if (tab) tab.click();
                        }
                    });
                }
                obs.disconnect();
            }
        });
        observer.observe(document.body, { childList: true, subtree: true });
    }
});


$(function() {
    var siteName = ' - Stargaze Community Wiki';
    if (document.title.indexOf(siteName) === -1) {
        document.title = document.title + siteName;
    }
});