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)
- Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
- Opera: Pressione Ctrl-F5.
mw.hook("wikipage.content").add(function () {
var API = "https://api.pkro.com.br";
function roColorToHtml(text) {
return text
.replace(/\^([0-9A-Fa-f]{6})/g, '<span style="color:#$1">')
.replace(/\n/g, "<br>") + "</span>";
}
document.querySelectorAll(".mw-item").forEach(function (el) {
if (el.dataset.loaded) return; // evita duplicar
el.dataset.loaded = "1";
var id = el.dataset.id;
fetch(API + "/item/" + id)
.then(function (r) { return r.json(); })
.then(function (item) {
el.innerHTML = '<img src="' + API + item.icon + '" width="32">';
el.addEventListener("mouseenter", function () {
var tip = document.createElement("div");
tip.className = "item-tooltip";
tip.innerHTML =
'<div style="display:flex; gap:10px;">' +
'<img src="' + API + item.icon + '" width="42">' +
'<div>' +
'<b>' + item.name + '</b><br>' +
roColorToHtml(item.description) +
'</div>' +
'</div>';
document.body.appendChild(tip);
var move = function (ev) {
var x = ev.clientX + 18;
var y = ev.clientY + 18;
// evita sair da tela
if (x + 320 > window.innerWidth)
x = ev.clientX - 320;
if (y + 180 > window.innerHeight)
y = ev.clientY - 180;
tip.style.left = x + "px";
tip.style.top = y + "px";
};
document.addEventListener("mousemove", move);
el.addEventListener("mouseleave", function () {
tip.remove();
document.removeEventListener("mousemove", move);
}, { once: true });
});
})
.catch(function (err) {
console.error("Item API erro:", err);
el.innerHTML = "[erro]";
});
});
});