diff options
author | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
commit | 2f01fe57a8d37767827d6db42850aef86a767c53 (patch) | |
tree | 516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dijit/_editor/html.js | |
parent | 951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff) |
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dijit/_editor/html.js')
-rw-r--r-- | lib/dijit/_editor/html.js | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/lib/dijit/_editor/html.js b/lib/dijit/_editor/html.js new file mode 100644 index 000000000..7db85c7d9 --- /dev/null +++ b/lib/dijit/_editor/html.js @@ -0,0 +1,147 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.html"]){ +dojo._hasResource["dijit._editor.html"]=true; +dojo.provide("dijit._editor.html"); +dijit._editor.escapeXml=function(_1,_2){ +_1=_1.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,"""); +if(!_2){ +_1=_1.replace(/'/gm,"'"); +} +return _1; +}; +dijit._editor.getNodeHtml=function(_3){ +var _4; +switch(_3.nodeType){ +case 1: +var _5=_3.nodeName.toLowerCase(); +if(!_5||_5.charAt(0)=="/"){ +return ""; +} +_4="<"+_5; +var _6=[]; +var _7; +if(dojo.isIE&&_3.outerHTML){ +var s=_3.outerHTML; +s=s.substr(0,s.indexOf(">")).replace(/(['"])[^"']*\1/g,""); +var _8=/(\b\w+)\s?=/g; +var m,_9; +while((m=_8.exec(s))){ +_9=m[1]; +if(_9.substr(0,3)!="_dj"){ +if(_9=="src"||_9=="href"){ +if(_3.getAttribute("_djrealurl")){ +_6.push([_9,_3.getAttribute("_djrealurl")]); +continue; +} +} +var _a,_b; +switch(_9){ +case "style": +_a=_3.style.cssText.toLowerCase(); +break; +case "class": +_a=_3.className; +break; +case "width": +if(_5==="img"){ +_b=/width=(\S+)/i.exec(s); +if(_b){ +_a=_b[1]; +} +break; +} +case "height": +if(_5==="img"){ +_b=/height=(\S+)/i.exec(s); +if(_b){ +_a=_b[1]; +} +break; +} +default: +_a=_3.getAttribute(_9); +} +if(_a!=null){ +_6.push([_9,_a.toString()]); +} +} +} +}else{ +var i=0; +while((_7=_3.attributes[i++])){ +var n=_7.name; +if(n.substr(0,3)!="_dj"){ +var v=_7.value; +if(n=="src"||n=="href"){ +if(_3.getAttribute("_djrealurl")){ +v=_3.getAttribute("_djrealurl"); +} +} +_6.push([n,v]); +} +} +} +_6.sort(function(a,b){ +return a[0]<b[0]?-1:(a[0]==b[0]?0:1); +}); +var j=0; +while((_7=_6[j++])){ +_4+=" "+_7[0]+"=\""+(dojo.isString(_7[1])?dijit._editor.escapeXml(_7[1],true):_7[1])+"\""; +} +if(_5==="script"){ +_4+=">"+_3.innerHTML+"</"+_5+">"; +}else{ +if(_3.childNodes.length){ +_4+=">"+dijit._editor.getChildrenHtml(_3)+"</"+_5+">"; +}else{ +switch(_5){ +case "br": +case "hr": +case "img": +case "input": +case "base": +case "meta": +case "area": +case "basefont": +_4+=" />"; +break; +default: +_4+="></"+_5+">"; +} +} +} +break; +case 4: +case 3: +_4=dijit._editor.escapeXml(_3.nodeValue,true); +break; +case 8: +_4="<!--"+dijit._editor.escapeXml(_3.nodeValue,true)+"-->"; +break; +default: +_4="<!-- Element not recognized - Type: "+_3.nodeType+" Name: "+_3.nodeName+"-->"; +} +return _4; +}; +dijit._editor.getChildrenHtml=function(_c){ +var _d=""; +if(!_c){ +return _d; +} +var _e=_c["childNodes"]||_c; +var _f=!dojo.isIE||_e!==_c; +var _10,i=0; +while((_10=_e[i++])){ +if(!_f||_10.parentNode==_c){ +_d+=dijit._editor.getNodeHtml(_10); +} +} +return _d; +}; +} |