ttrss/lib/dijit/_editor/selection.js

2 lines
4.6 KiB
JavaScript
Raw Normal View History

2012-08-14 14:59:10 +00:00
//>>built
define("dijit/_editor/selection",["dojo/dom","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window",".."],function(_1,_2,_3,_4,_5){_2.getObject("_editor.selection",true,_5);_2.mixin(_5._editor.selection,{getType:function(){if(_3("ie")<9){return _4.doc.selection.type.toLowerCase();}else{var _6="text";var _7;try{_7=_4.global.getSelection();}catch(e){}if(_7&&_7.rangeCount==1){var _8=_7.getRangeAt(0);if((_8.startContainer==_8.endContainer)&&((_8.endOffset-_8.startOffset)==1)&&(_8.startContainer.nodeType!=3)){_6="control";}}return _6;}},getSelectedText:function(){if(_3("ie")<9){if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().text;}else{var _9=_4.global.getSelection();if(_9){return _9.toString();}}return "";},getSelectedHtml:function(){if(_3("ie")<9){if(_5._editor.selection.getType()=="control"){return null;}return _4.doc.selection.createRange().htmlText;}else{var _a=_4.global.getSelection();if(_a&&_a.rangeCount){var i;var _b="";for(i=0;i<_a.rangeCount;i++){var _c=_a.getRangeAt(i).cloneContents();var _d=_4.doc.createElement("div");_d.appendChild(_c);_b+=_d.innerHTML;}return _b;}return null;}},getSelectedElement:function(){if(_5._editor.selection.getType()=="control"){if(_3("ie")<9){var _e=_4.doc.selection.createRange();if(_e&&_e.item){return _4.doc.selection.createRange().item(0);}}else{var _f=_4.global.getSelection();return _f.anchorNode.childNodes[_f.anchorOffset];}}return null;},getParentElement:function(){if(_5._editor.selection.getType()=="control"){var p=this.getSelectedElement();if(p){return p.parentNode;}}else{if(_3("ie")<9){var r=_4.doc.selection.createRange();r.collapse(true);return r.parentElement();}else{var _10=_4.global.getSelection();if(_10){var _11=_10.anchorNode;while(_11&&(_11.nodeType!=1)){_11=_11.parentNode;}return _11;}}}return null;},hasAncestorElement:function(_12){return this.getAncestorElement.apply(this,arguments)!=null;},getAncestorElement:function(_13){var _14=this.getSelectedElement()||this.getParentElement();return this.getParentOfType(_14,arguments);},isTag:function(_15,_16){if(_15&&_15.tagName){var _17=_15.tagName.toLowerCase();for(var i=0;i<_16.length;i++){var _18=String(_16[i]).toLowerCase();if(_17==_18){return _18;}}}return "";},getParentOfType:function(_19,_1a){while(_19){if(this.isTag(_19,_1a).length){return _19;}_19=_19.parentNode;}return null;},collapse:function(_1b){if(window.getSelection){var _1c=_4.global.getSelection();if(_1c.removeAllRanges){if(_1b){_1c.collapseToStart();}else{_1c.collapseToEnd();}}else{_1c.collapse(_1b);}}else{if(_3("ie")){var _1d=_4.doc.selection.createRange();_1d.collapse(_1b);_1d.select();}}},remove:function(){var sel=_4.doc.selection;if(_3("ie")<9){if(sel.type.toLowerCase()!="none"){sel.clear();}return sel;}else{sel=_4.global.getSelection();sel.deleteFromDocument();return sel;}},selectElementChildren:function(_1e,_1f){var _20=_4.global;var doc=_4.doc;var _21;_1e=_1.byId(_1e);if(doc.selection&&_3("ie")<9&&_4.body().createTextRange){_21=_1e.ownerDocument.body.createTextRange();_21.moveToElementText(_1e);if(!_1f){try{_21.select();}catch(e){}}}else{if(_20.getSelection){var _22=_4.global.getSelection();if(_3("opera")){if(_22.rangeCount){_21=_22.getRangeAt(0);}else{_21=doc.createRange();}_21.setStart(_1e,0);_21.setEnd(_1e,(_1e.nodeType==3)?_1e.length:_1e.childNodes.length);_22.addRange(_21);}else{_22.selectAllChildren(_1e);}}}},selectElement:function(_23,_24){var _25;var doc=_4.doc;var _26=_4.global;_23=_1.byId(_23);if(_3("ie")<9&&_4.body().createTextRange){try{var tg=_23.tagName?_23.tagName.toLowerCase():"";if(tg==="img"||tg==="table"){_25=_4.body().createControlRange();}else{_25=_4.body().createRange();}_25.addElement(_23);if(!_24){_25.select();}}catch(e){this.selectElementChildren(_23,_24);}}else{if(_26.getSelection){var _27=_26.getSelection();_25=doc.createRange();if(_27.removeAllRanges){if(_3("opera")){if(_27.getRangeAt(0)){_25=_27.getRangeAt(0);}}_25.selectNode(_23);_27.removeAllRanges();_27.addRange(_25);}}}},inSelection:function(_28){if(_28){var _29;var doc=_4.doc;var _2a;if(_4.global.getSelection){var sel=_4