cryptpad/www/common/clipboard.js

46 lines
1007 B
JavaScript

define(['jquery'], function ($) {
var Clipboard = {};
var copy = function (text, multiline) {
var $ta = $('<input>', {
type: 'text',
}).val(text);
if (multiline) {
$ta = $('<textarea>').val(text);
}
$('body').append($ta);
if (!($ta.length && $ta[0].select)) {
// console.log("oops");
return;
}
var success = false;
try {
$ta[0].select();
document.execCommand('copy');
$ta[0].blur();
success = true;
} catch (err) {
console.log("error, could not copy to clipboard");
}
$ta.remove();
return success;
};
// copy arbitrary text to the clipboard
// return boolean indicating success
Clipboard.copy = function (text) {
return copy(text);
};
Clipboard.copy.multiline = function (text) {
return copy(text, true);
};
return Clipboard;
});