copy.js 691 B

12345678910111213141516171819202122232425262728293031
  1. var extend = require('./extend');
  2. var noop = require('./noop');
  3. exports = function(text, cb) {
  4. cb = cb || noop;
  5. var el = document.createElement('textarea');
  6. var body = document.body;
  7. extend(el.style, {
  8. fontSize: '12pt',
  9. border: '0',
  10. padding: '0',
  11. margin: '0',
  12. position: 'absolute',
  13. left: '-9999px'
  14. });
  15. el.value = text;
  16. body.appendChild(el);
  17. el.setAttribute('readonly', '');
  18. el.select();
  19. el.setSelectionRange(0, text.length);
  20. try {
  21. document.execCommand('copy');
  22. cb();
  23. } catch (e) {
  24. cb(e);
  25. } finally {
  26. body.removeChild(el);
  27. }
  28. };
  29. module.exports = exports;