MediaWiki:Common.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Conteúdo deletado Conteúdo adicionado
Sem resumo de edição Etiqueta: Revertido |
Sem resumo de edição Etiqueta: Revertido |
||
| Linha 2: | Linha 2: | ||
/* Ocultar links para páginas especiais de usuários não registrados */ |
/* Ocultar links para páginas especiais de usuários não registrados */ |
||
if (mw.config.get('wgUserName') === null) { |
|||
$(function () { |
|||
$(function () { |
|||
// Variável para controlar se já escondeu |
|||
// Função otimizada para Vector 1.43.1 |
|||
let searchHidden = false; |
|||
const hideSearchAndSpecialPages = function() { |
|||
// Esconder páginas especiais |
|||
// Função principal para ocultar elementos |
|||
$('#n-specialpages').hide(); |
|||
const hideElementsForAnonymous = function() { |
|||
// Para Vector 2022 (1.43.1) |
|||
if (mw.config.get('wgUserName') !== null) { |
|||
$('.vector-search-box').hide(); |
|||
$('.vector-header .vector-search-box').hide(); |
|||
} |
|||
$('.vector-header-end, .vector-header-start').each(function() { |
|||
$(this).find('.vector-search-box').hide(); |
|||
// Se já escondeu, verificar se elementos reapareceram |
|||
}); |
|||
// Verificar se algum elemento de busca está visível |
|||
const searchVisible = $('#p-search').is(':visible') || |
|||
$('.vector-search-box').is(':visible') || |
|||
$('#searchInput').is(':visible'); |
|||
// Para skins mais antigas |
|||
$('#p-search, #searchform, #searchInput').hide(); |
|||
return; // Já está oculto, não precisa fazer nada |
|||
// Adicionar marcação ao body |
|||
} |
|||
$('body').addClass('user-anonymous-mode'); |
|||
}; |
|||
// Executar imediatamente |
|||
// 1. Ocultar páginas especiais da navegação |
|||
hideSearchAndSpecialPages(); |
|||
// |
// Interceptar o clique em ENTRAR |
||
$(document).on('mousedown click', function(e) { |
|||
const searchSelectors = [ |
|||
const $target = $(e.target); |
|||
' |
const $link = $target.closest('a'); |
||
if ($link.length > 0) { |
|||
const linkText = $link.text().toLowerCase(); |
|||
const linkHref = $link.attr('href') || ''; |
|||
if (linkText.includes('entrar') || |
|||
linkText.includes('login') || |
|||
linkHref.includes('Special:UserLogin') || |
|||
$link.attr('id') === 'pt-login') { |
|||
// Executar múltiplas vezes para garantir |
|||
'[class*="search"]', |
|||
for (let i = 0; i < 5; i++) { |
|||
setTimeout(hideSearchAndSpecialPages, i * 200); |
|||
'.vector-header-end .vector-search-box', |
|||
'.vector-header-start .vector-search-box' |
|||
]; |
|||
// Aplicar a cada seletor |
|||
searchSelectors.forEach(selector => { |
|||
try { |
|||
$(selector).each(function() { |
|||
$(this).hide(); |
|||
$(this).css({ |
|||
'display': 'none !important', |
|||
'visibility': 'hidden !important' |
|||
}); |
|||
}); |
|||
} catch (e) { |
|||
console.log('Erro com seletor:', selector, e); |
|||
} |
|||
}); |
|||
// 3. Marcar como escondido |
|||
searchHidden = true; |
|||
// 4. Adicionar classe ao body para controle via CSS |
|||
$('body').addClass('anonymous-user'); |
|||
}; |
|||
// Executar imediatamente |
|||
hideElementsForAnonymous(); |
|||
// Executar novamente após carregamento completo |
|||
$(window).on('load', hideElementsForAnonymous); |
|||
// Executar em intervalos curtos inicialmente |
|||
let intervalCount = 0; |
|||
const initialInterval = setInterval(() => { |
|||
hideElementsForAnonymous(); |
|||
intervalCount++; |
|||
if (intervalCount > 10) { // Parar após 10 execuções (5 segundos) |
|||
clearInterval(initialInterval); |
|||
} |
|||
}, 500); |
|||
// Observar mudanças no DOM de forma mais agressiva |
|||
const observer = new MutationObserver(function(mutations) { |
|||
let shouldHide = false; |
|||
mutations.forEach(function(mutation) { |
|||
if (mutation.addedNodes.length > 0) { |
|||
// Verificar se algum nó adicionado contém elementos de busca |
|||
$(mutation.addedNodes).each(function() { |
|||
if ($(this).find(searchSelectors.join(',')).length > 0 || |
|||
$(this).is(searchSelectors.join(','))) { |
|||
shouldHide = true; |
|||
} |
} |
||
} |
} |
||
} |
} |
||
}); |
}); |
||
// Executar em intervalos curtos |
|||
setInterval(hideSearchAndSpecialPages, 1000); |
|||
hideElementsForAnonymous(); |
|||
} |
|||
}); |
}); |
||
} |
|||
observer.observe(document.body, { |
|||
childList: true, |
|||
subtree: true, |
|||
attributes: true, |
|||
attributeFilter: ['style', 'class', 'id'] |
|||
}); |
|||
// Monitorar cliques em qualquer link, especialmente "ENTRAR" |
|||
$(document).on('click', 'a', function(e) { |
|||
const href = $(this).attr('href') || ''; |
|||
if (href.includes('Special:UserLogin') || |
|||
href.includes('title=Special:UserLogin') || |
|||
$(this).text().toLowerCase().includes('entrar') || |
|||
$(this).attr('id') === 'pt-login') { |
|||
// Antes do redirecionamento, garantir que elementos estejam ocultos |
|||
setTimeout(hideElementsForAnonymous, 100); |
|||
setTimeout(hideElementsForAnonymous, 500); |
|||
} |
|||
}); |
|||
// Monitorar mudanças na URL (para quando clicar em ENTRAR) |
|||
let lastUrl = location.href; |
|||
new MutationObserver(() => { |
|||
const url = location.href; |
|||
if (url !== lastUrl) { |
|||
lastUrl = url; |
|||
if (url.includes('Special:UserLogin')) { |
|||
setTimeout(hideElementsForAnonymous, 100); |
|||
setTimeout(hideElementsForAnonymous, 500); |
|||
} |
|||
} |
|||
}).observe(document, { subtree: true, childList: true }); |
|||
}); |
|||
Edição das 08h42min de 16 de janeiro de 2026
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
/* Ocultar links para páginas especiais de usuários não registrados */
if (mw.config.get('wgUserName') === null) {
$(function () {
// Função otimizada para Vector 1.43.1
const hideSearchAndSpecialPages = function() {
// Esconder páginas especiais
$('#n-specialpages').hide();
// Para Vector 2022 (1.43.1)
$('.vector-search-box').hide();
$('.vector-header .vector-search-box').hide();
$('.vector-header-end, .vector-header-start').each(function() {
$(this).find('.vector-search-box').hide();
});
// Para skins mais antigas
$('#p-search, #searchform, #searchInput').hide();
// Adicionar marcação ao body
$('body').addClass('user-anonymous-mode');
};
// Executar imediatamente
hideSearchAndSpecialPages();
// Interceptar o clique em ENTRAR
$(document).on('mousedown click', function(e) {
const $target = $(e.target);
const $link = $target.closest('a');
if ($link.length > 0) {
const linkText = $link.text().toLowerCase();
const linkHref = $link.attr('href') || '';
if (linkText.includes('entrar') ||
linkText.includes('login') ||
linkHref.includes('Special:UserLogin') ||
$link.attr('id') === 'pt-login') {
// Executar múltiplas vezes para garantir
for (let i = 0; i < 5; i++) {
setTimeout(hideSearchAndSpecialPages, i * 200);
}
}
}
});
// Executar em intervalos curtos
setInterval(hideSearchAndSpecialPages, 1000);
});
}