MediaWiki:Common.js
Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
- Opera: Pressione Ctrl-F5.
// Navi clicável - formato igual ao bROWiki: <div class="navi-copy"><span>mapa</span><span>x</span><span>y</span></div>
mw.loader.using('mediawiki.util').then(function () {
function copiarTexto(text) {
if (navigator.clipboard && navigator.clipboard.writeText) {
return navigator.clipboard.writeText(text);
}
// fallback antigo
return new Promise(function (resolve, reject) {
try {
var temp = document.createElement('textarea');
temp.value = text;
document.body.appendChild(temp);
temp.select();
document.execCommand('copy');
document.body.removeChild(temp);
resolve();
} catch (e) {
reject(e);
}
});
}
function montarNavi(div) {
var spans = div.getElementsByTagName('span');
if (spans.length < 3) return;
var mapa = spans[0].textContent.trim();
var x = spans[1].textContent.trim();
var y = spans[2].textContent.trim();
// Limpa conteúdo original
while (div.firstChild) {
div.removeChild(div.firstChild);
}
// Texto clicável
var texto = document.createElement('div');
texto.className = 'navi-copy-text';
texto.textContent = '(' + mapa + ' ' + x + ', ' + y + ')';
// Mensagem "copiado"
var aviso = document.createElement('div');
aviso.className = 'navi-copied';
aviso.textContent = 'Comando copiado!';
aviso.style.display = 'none';
div.appendChild(texto);
div.appendChild(aviso);
texto.addEventListener('click', function () {
var cmd = '/navi ' + mapa + ' ' + x + ' ' + y;
copiarTexto(cmd).then(function () {
aviso.style.display = 'inline';
setTimeout(function () {
aviso.style.display = 'none';
}, 1500);
if (mw && mw.notify) {
mw.notify('Comando copiado: ' + cmd);
}
}).catch(function () {
alert('Comando: ' + cmd);
});
});
}
// Aplica em todos os .navi-copy da página
document.querySelectorAll('.navi-copy').forEach(montarNavi);
});