dragdrop.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. UE.plugins['dragdrop'] = function (){
  2. var me = this;
  3. me.ready(function(){
  4. domUtils.on(this.body,'dragend',function(){
  5. var rng = me.selection.getRange();
  6. var node = rng.getClosedNode()||me.selection.getStart();
  7. if(node && node.tagName == 'IMG'){
  8. var pre = node.previousSibling,next;
  9. while(next = node.nextSibling){
  10. if(next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild){
  11. domUtils.remove(next)
  12. }else{
  13. break;
  14. }
  15. }
  16. if((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !domUtils.isEmptyBlock(next))){
  17. if(pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)){
  18. pre.appendChild(node);
  19. domUtils.moveChild(next,pre);
  20. domUtils.remove(next);
  21. }else if(next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)){
  22. next.insertBefore(node,next.firstChild);
  23. }
  24. if(pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)){
  25. domUtils.remove(pre)
  26. }
  27. if(next && next.tagName == 'P' && domUtils.isEmptyBlock(next)){
  28. domUtils.remove(next)
  29. }
  30. rng.selectNode(node).select();
  31. me.fireEvent('saveScene');
  32. }
  33. }
  34. })
  35. });
  36. me.addListener('keyup', function(type, evt) {
  37. var keyCode = evt.keyCode || evt.which;
  38. if (keyCode == 13) {
  39. var rng = me.selection.getRange(),node;
  40. if(node = domUtils.findParentByTagName(rng.startContainer,'p',true)){
  41. if(domUtils.getComputedStyle(node,'text-align') == 'center'){
  42. domUtils.removeStyle(node,'text-align')
  43. }
  44. }
  45. }
  46. })
  47. };