MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
/** | |||
* GOOGLE ANALYTICS | |||
* Injeção correta de script externo para evitar o erro de "Parse error" | |||
*/ | |||
var gaScript = document.createElement('script'); | |||
gaScript.src = "https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW"; | |||
gaScript.async = true; | |||
document.head.appendChild(gaScript); | |||
window.dataLayer = window.dataLayer || []; | |||
function gtag(){dataLayer.push(arguments);} | |||
gtag('js', new Date()); | |||
gtag('config', 'G-MX174P23PW'); | |||
/** | |||
* TESTE DE FUNCIONAMENTO | |||
* Podes apagar esta linha do alert depois de veres que o botão apareceu | |||
*/ | |||
alert("ATRONIA JS OK"); | alert("ATRONIA JS OK"); | ||
/** | |||
* BOTÃO DE COPIAR (Copy Button) | |||
* Este script cria o botão de cópia em todos os blocos de código | |||
*/ | |||
$(function() { | $(function() { | ||
// Procura os blocos gerados pela extensão SyntaxHighlight | |||
$('.mw-highlight').each(function() { | $('.mw-highlight').each(function() { | ||
var $block = $(this); | var $block = $(this); | ||
if ($block.find('.copy-btn').length > 0) return; | |||
// Evita botões duplicados | |||
if ($block.find('.copy-btn').length > 0) return; | |||
// Cria o botão com estilo azul | |||
var $button = $('<button>') | var $button = $('<button>') | ||
.text('Copy') | .text('Copy') | ||
| Line 36: | Line 48: | ||
'border-radius': '3px', | 'border-radius': '3px', | ||
'cursor': 'pointer', | 'cursor': 'pointer', | ||
'font-size': '12px' | 'font-size': '12px', | ||
'font-weight': 'bold' | |||
}); | }); | ||
// Função para copiar o texto | |||
$button.on('click', function() { | $button.on('click', function() { | ||
var text = $block.find('pre').text(); | var text = $block.find('pre').text(); | ||
navigator.clipboard.writeText(text).then(function() { | navigator.clipboard.writeText(text).then(function() { | ||
$button.text('Copied!').css('background', '#00af89'); | $button.text('Copied!').css('background', '#00af89'); | ||
| Line 46: | Line 61: | ||
$button.text('Copy').css('background', '#3366cc'); | $button.text('Copy').css('background', '#3366cc'); | ||
}, 2000); | }, 2000); | ||
}).catch(function(err) { | |||
console.error('Erro ao copiar: ', err); | |||
}); | }); | ||
}); | }); | ||
// Adiciona o botão ao bloco | |||
$block.css('position', 'relative').prepend($button); | $block.css('position', 'relative').prepend($button); | ||
}); | }); | ||
}); | }); | ||
Revision as of 09:30, 13 March 2026
/* Any JavaScript here will be loaded for all users on every page load. */
/**
* GOOGLE ANALYTICS
* Injeção correta de script externo para evitar o erro de "Parse error"
*/
var gaScript = document.createElement('script');
gaScript.src = "https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW";
gaScript.async = true;
document.head.appendChild(gaScript);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-MX174P23PW');
/**
* TESTE DE FUNCIONAMENTO
* Podes apagar esta linha do alert depois de veres que o botão apareceu
*/
alert("ATRONIA JS OK");
/**
* BOTÃO DE COPIAR (Copy Button)
* Este script cria o botão de cópia em todos os blocos de código
*/
$(function() {
// Procura os blocos gerados pela extensão SyntaxHighlight
$('.mw-highlight').each(function() {
var $block = $(this);
// Evita botões duplicados
if ($block.find('.copy-btn').length > 0) return;
// Cria o botão com estilo azul
var $button = $('<button>')
.text('Copy')
.addClass('copy-btn')
.css({
'position': 'absolute',
'top': '5px',
'right': '5px',
'z-index': '100',
'padding': '3px 8px',
'background': '#3366cc',
'color': '#fff',
'border': 'none',
'border-radius': '3px',
'cursor': 'pointer',
'font-size': '12px',
'font-weight': 'bold'
});
// Função para copiar o texto
$button.on('click', function() {
var text = $block.find('pre').text();
navigator.clipboard.writeText(text).then(function() {
$button.text('Copied!').css('background', '#00af89');
setTimeout(function() {
$button.text('Copy').css('background', '#3366cc');
}, 2000);
}).catch(function(err) {
console.error('Erro ao copiar: ', err);
});
});
// Adiciona o botão ao bloco
$block.css('position', 'relative').prepend($button);
});
});