MediaWiki:Chatcodes.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/* * Konvertiert HTML der Form <span class="chatlink (item|map|skill|trait|recipe)">[id]</span> zu einem anklickbaren Chatlink * Nutzt anteilsweise Code aus [[:en:Widget:Game link]]. */ $(document).ready(function() { $("span.chatlink").each( function( index, element ){ var id = parseInt($(this).html(), 10); var link = ''; if($(this).hasClass('item')) type = 2; if($(this).hasClass('map')) type = 4; if($(this).hasClass('skill')) type = 6; if($(this).hasClass('trait')) type = 7; if($(this).hasClass('recipe')) type = 9; if($(this).hasClass('skin')) type = 10; if($(this).hasClass('outfit')) type = 11; var data = []; while (id > 0) { data.push(id & 255); id = id >> 8; } while (data.length < 4 || data.length % 2 != 0) { data.push(0); } if (type == 2) { data.unshift(1); } data.unshift(type); // Daten kodieren var binary = ''; for (var i = 0; i < data.length; i++) { binary += String.fromCharCode(data[i]); } link = '[&' + window.btoa(binary) + ']'; // Link einfügen $(this).html(link); // Klickbares input-Element erzeugen var input = $('<input type="text" size="12" />').val(link).css({ display : 'inline-block', outline: 'none', border: '1px solid #ccc', visibility: 'hidden', position : 'absolute', 'cursor' : 'pointer' }); // input-Element im DOM einsortieren: <elem>{input}{link}</elem> $(this).before(input); // Element anklickbar machen $(this).click(function() { $(this).prev().css('visibility', 'visible').focus().select(); // show input, focus and select }); // blur handler $(input).blur(function() { $(this).css('visibility', 'hidden'); // hide input }); }); });