1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- UE.plugins["dragdrop"] = function() {
- var me = this;
- me.ready(function() {
- domUtils.on(this.body, "dragend", function() {
- var rng = me.selection.getRange();
- var node = rng.getClosedNode() || me.selection.getStart();
- if (node && node.tagName == "IMG") {
- var pre = node.previousSibling,
- next;
- while ((next = node.nextSibling)) {
- if (
- next.nodeType == 1 &&
- next.tagName == "SPAN" &&
- !next.firstChild
- ) {
- domUtils.remove(next);
- } else {
- break;
- }
- }
- if (
- ((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre)) || !pre) &&
- (!next || (next && !domUtils.isEmptyBlock(next)))
- ) {
- if (pre && pre.tagName == "P" && !domUtils.isEmptyBlock(pre)) {
- pre.appendChild(node);
- domUtils.moveChild(next, pre);
- domUtils.remove(next);
- } else if (
- next &&
- next.tagName == "P" &&
- !domUtils.isEmptyBlock(next)
- ) {
- next.insertBefore(node, next.firstChild);
- }
- if (pre && pre.tagName == "P" && domUtils.isEmptyBlock(pre)) {
- domUtils.remove(pre);
- }
- if (next && next.tagName == "P" && domUtils.isEmptyBlock(next)) {
- domUtils.remove(next);
- }
- rng.selectNode(node).select();
- me.fireEvent("saveScene");
- }
- }
- });
- });
- me.addListener("keyup", function(type, evt) {
- var keyCode = evt.keyCode || evt.which;
- if (keyCode == 13) {
- var rng = me.selection.getRange(),
- node;
- if (
- (node = domUtils.findParentByTagName(rng.startContainer, "p", true))
- ) {
- if (domUtils.getComputedStyle(node, "text-align") == "center") {
- domUtils.removeStyle(node, "text-align");
- }
- }
- }
- });
- };
|