More actions
No edit summary |
No edit summary |
||
| Line 26: | Line 26: | ||
if (!link.closest('.citizen-typeahead')) return; | if (!link.closest('.citizen-typeahead')) return; | ||
// Check if the result has a redirect label | |||
var redirectLabel = link.querySelector('.citizen-typeahead__labelItem[title*="redirect from"]'); | |||
if (redirectLabel) { | |||
// | var match = redirectLabel.getAttribute('title').match(/redirect from (.+)\)/); | ||
var | if (match) { | ||
e.preventDefault(); | |||
e.stopPropagation(); | |||
window.location.href = '/index.php?title=' + encodeURIComponent(match[1]) + '&redirect=yes'; | |||
var | } | ||
} | } | ||
}, true); | }, true); | ||
Revision as of 21:43, 3 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;
// Check if the result has a redirect label
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 = '/index.php?title=' + encodeURIComponent(match[1]) + '&redirect=yes';
}
}
}, 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 });
}
});