MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 228: | Line 228: | ||
/** | /** | ||
* Quick Search — Navigate directly to wiki page | * Quick Search — Navigate directly to wiki page (DEBUG VERSION) | ||
* Intercepts the Page Forms #forminput inside #crt-quick-search so that | * Intercepts the Page Forms #forminput inside #crt-quick-search so that | ||
* clicking "Go" (or pressing Enter, or selecting an autocomplete suggestion) | * clicking "Go" (or pressing Enter, or selecting an autocomplete suggestion) | ||
| Line 235: | Line 235: | ||
(function () { | (function () { | ||
'use strict'; | 'use strict'; | ||
var PAGE = mw.config.get('wgPageName'); | |||
console.log('[QuickSearch] wgPageName =', PAGE); | |||
// Only run on Main Page | // Only run on Main Page | ||
if ( | if (PAGE !== 'Main_Page') { | ||
console.log('[QuickSearch] Not Main_Page, exiting.'); | |||
return; | |||
} | |||
function initQuickSearch() { | function initQuickSearch() { | ||
console.log('[QuickSearch] initQuickSearch() called'); | |||
var container = document.getElementById('crt-quick-search'); | var container = document.getElementById('crt-quick-search'); | ||
console.log('[QuickSearch] container #crt-quick-search =', container); | |||
if (!container) return; | if (!container) return; | ||
// Log all child elements to see structure | |||
console.log('[QuickSearch] container innerHTML (first 500 chars):', container.innerHTML.substring(0, 500)); | |||
var form = container.querySelector('form'); | var form = container.querySelector('form'); | ||
if (!form) | console.log('[QuickSearch] form =', form); | ||
if (!form) { | |||
console.log('[QuickSearch] No <form> found. Trying other selectors...'); | |||
// Page Forms might not wrap in a <form> — try the div it creates | |||
var pfDiv = container.querySelector('.pfFormInputWrapper, .forminput-wrapper, div[id^="pf"]'); | |||
console.log('[QuickSearch] PF wrapper div =', pfDiv); | |||
} | |||
var input = container.querySelector('input[type="text"]'); | |||
console.log('[QuickSearch] input[type="text"] =', input); | |||
if (!input) { | |||
// Try broader selectors | |||
var anyInput = container.querySelector('input'); | |||
console.log('[QuickSearch] any input =', anyInput); | |||
if (anyInput) { | |||
console.log('[QuickSearch] input type =', anyInput.type, ', name =', anyInput.name, ', class =', anyInput.className); | |||
} | |||
} | |||
if (!form || !input) { | |||
console.warn('[QuickSearch] Could not find form or input. Aborting.'); | |||
return; | |||
} | |||
function goToPage() { | function goToPage() { | ||
var value = input.value.trim(); | var value = input.value.trim(); | ||
console.log('[QuickSearch] goToPage() value =', JSON.stringify(value)); | |||
if (value) { | if (value) { | ||
var url = mw.util.getUrl(value); | |||
console.log('[QuickSearch] Navigating to:', url); | |||
window.location.href = url; | |||
} | } | ||
} | } | ||
form.addEventListener('submit', function (e) { | form.addEventListener('submit', function (e) { | ||
console.log('[QuickSearch] Form submit intercepted!'); | |||
e.preventDefault(); | e.preventDefault(); | ||
e.stopPropagation(); | e.stopPropagation(); | ||
| Line 266: | Line 297: | ||
}); | }); | ||
if (typeof $ !== 'undefined') { | |||
$(input).on('pfautocomplete', function () { | |||
console.log('[QuickSearch] pfautocomplete event fired'); | |||
setTimeout(goToPage, 50); | |||
}); | |||
console.log('[QuickSearch] pfautocomplete listener attached'); | |||
}); | } else { | ||
console.warn('[QuickSearch] jQuery not available'); | |||
} | |||
console.log('[QuickSearch] Setup complete!'); | |||
} | } | ||
if (document.readyState === 'loading') { | if (document.readyState === 'loading') { | ||
console.log('[QuickSearch] DOM loading, adding DOMContentLoaded listener'); | |||
document.addEventListener('DOMContentLoaded', initQuickSearch); | document.addEventListener('DOMContentLoaded', initQuickSearch); | ||
} else { | } else { | ||
console.log('[QuickSearch] DOM already ready, calling initQuickSearch now'); | |||
initQuickSearch(); | initQuickSearch(); | ||
} | } | ||