MediaWiki:Gadget-ezcopy.js
After saving, you may need to bypass your browser's cache to see the changes. For further information, see Wikipedia:Bypass your cache.
- In most Windows and Linux browsers: Hold down Ctrl and press F5.
- In Safari: Hold down ⇧ Shift and click the Reload button.
- In Chrome and Firefox for Mac: Hold down both ⌘ Cmd+⇧ Shift and press R.
$(function () {
function try_copy(x, $el) {
var txt = document.createElement('textarea'), $txt = $(txt);
$txt.text(x).css({
position: 'fixed',
top: 0,
left: 0,
width: '2em',
heigh: '2em',
padding: 0,
border: 'none',
outline: 'none',
boxShadow: 'none',
background: 'transparent'
}).appendTo('body');
txt.select();
try {
document.execCommand('copy');
//mw.notify('Copied "'+x+'" to the clipboard', {tag: 'ezcopy'});
$el.addClass('rsw-ezcopy-copied');
setTimeout(function(){$el.removeClass('rsw-ezcopy-copied')}, 2500)
} catch (err) {}
$txt.remove();
}
function init() {
var $copy_fullpagename, $copy_pagename, $copy_displaytitle, $container,
FULLPAGENAME, PAGENAME, DISPLAYTITLE;
PAGENAME = mw.config.get('wgTitle');
$container = $('<span>').addClass('rsw-ezcopy-container');
$copy_pagename = $('<span>')
.addClass('rsw-ezcopy-button rsw-ezcopy-pagename')
.append('<span class="rsw-ezcopy-icon">','<span class="rsw-ezcopy-label">Page\nname</span>')
.attr('title', 'Copy "'+PAGENAME+'"');
$copy_pagename.click(function(){try_copy(PAGENAME, $copy_pagename);});
$container.append($copy_pagename);
FULLPAGENAME = PAGENAME;
if (mw.config.get('wgCanonicalNamespace') !== '') {
var ns = mw.config.get('wgFormattedNamespaces')[mw.config.get('wgNamespaceNumber')];
if (ns !== undefined) {
FULLPAGENAME = ns+':'+PAGENAME;
$copy_fullpagename = $('<span>')
.addClass('rsw-ezcopy-button rsw-ezcopy-fullpagename')
.append('<span class="rsw-ezcopy-icon">','<span class="rsw-ezcopy-label">Full</span>')
.attr('title', 'Copy "'+FULLPAGENAME+'"');
$copy_fullpagename.click(function(){try_copy(FULLPAGENAME, $copy_fullpagename);});
$container.append($copy_fullpagename);
}
}
if (mw.config.get('wgAction') === 'view' && mw.config.get('wgDiffOldId') === null) { // wgDiffOldId is either an ID or false if in a diff, null if not a diff
DISPLAYTITLE = $('#firstHeading').text();
if (FULLPAGENAME !== DISPLAYTITLE) {
$copy_displaytitle = $('<span>')
.addClass('rsw-ezcopy-button rsw-ezcopy-displaytitle')
.append('<span class="rsw-ezcopy-icon">','<span class="rsw-ezcopy-label">Display\ntitle</span>')
.attr('title', 'Copy "'+DISPLAYTITLE+'"');
$copy_displaytitle.click(function(){try_copy(DISPLAYTITLE, $copy_displaytitle)});
$container.append($copy_displaytitle);
}
}
$('#firstHeading').append($container);
}
init()
})