trumbowyg.pasteimage.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* ===========================================================
  2. * trumbowyg.pasteimage.js v1.0
  3. * Basic base64 paste plugin for Trumbowyg
  4. * http://alex-d.github.com/Trumbowyg
  5. * ===========================================================
  6. * Author : Alexandre Demode (Alex-D)
  7. * Twitter : @AlexandreDemode
  8. * Website : alex-d.fr
  9. */
  10. (function ($) {
  11. 'use strict';
  12. $.extend(true, $.trumbowyg, {
  13. plugins: {
  14. pasteImage: {
  15. init: function (trumbowyg) {
  16. trumbowyg.pasteHandlers.push(function (pasteEvent) {
  17. try {
  18. var items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items,
  19. mustPreventDefault = false,
  20. reader;
  21. for (var i = items.length - 1; i >= 0; i -= 1) {
  22. if (items[i].type.match(/^image\//)) {
  23. reader = new FileReader();
  24. /* jshint -W083 */
  25. reader.onloadend = function (event) {
  26. trumbowyg.execCmd('insertImage', event.target.result, false, true);
  27. };
  28. /* jshint +W083 */
  29. reader.readAsDataURL(items[i].getAsFile());
  30. mustPreventDefault = true;
  31. }
  32. }
  33. if (mustPreventDefault) {
  34. pasteEvent.stopPropagation();
  35. pasteEvent.preventDefault();
  36. }
  37. } catch (c) {
  38. }
  39. });
  40. }
  41. }
  42. }
  43. });
  44. })(jQuery);