// Make sure the utilities module is loaded (will only load if not already)
mw.loader.using( 'mediawiki.util', function () {
// Wait for the page to be parsed
$( document ).ready( function () {
var link = mw.util.addPortletLink( 'p-tb', '#', 'Encode', 'tb-encode', 'Encode character(s)');
$( link ).click( function ( event ) {
event.preventDefault();
encodeHTML();
} );
} );
} );
function encodeHTML() {
rawStr = prompt( "What do you want to encode?");
var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function(i) {
return '&#'+i.charCodeAt(0)+';';
});
alert( "The encoded string is: "+ encodedStr);
copyToClipboard(encodedStr);
mw.notify('Encoded string copied.');
}
function copyToClipboard(text) { // Taken from stackoverflow
if (window.clipboardData && window.clipboardData.setData) {
// Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.
return window.clipboardData.setData("Text", text);
}
else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in Microsoft Edge.
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); // Security exception may be thrown by some browsers.
}
catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return prompt("Copy to clipboard: Ctrl+C, Enter", text);
}
finally {
document.body.removeChild(textarea);
}
}
}