a:8:{s:9:"#provides";s:18:"dijit._editor.html";s:9:"#resource";s:15:"_editor/html.js";s:23:"dijit._editor.escapeXml";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"str";a:1:{s:4:"type";s:6:"String";}s:14:"noSingleQuotes";a:2:{s:8:"optional";b:1;s:4:"type";s:7:"Boolean";}}s:6:"source";s:191:" str = str.replace(/&/gm, "&").replace(//gm, ">").replace(/"/gm, """);
if(!noSingleQuotes){
str = str.replace(/'/gm, "'");
}
return str; // string";s:7:"summary";s:116:"Adds escape sequences for special characters in XML: &<>"'
Optionally skips escapes for single quotes";s:7:"returns";s:6:"string";s:14:"private_parent";b:1;}s:25:"dijit._editor.getNodeHtml";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"node";a:1:{s:4:"type";s:7:"DomNode";}}s:6:"source";s:2330:" var output;
switch(node.nodeType){
case 1: //element node
output = '<' + node.nodeName.toLowerCase();
//store the list of attributes and sort it to have the
//attributes appear in the dictionary order
var attrarray = [];
if(dojo.isIE && node.outerHTML){
var s = node.outerHTML;
s = s.substr(0, s.indexOf('>'))
.replace(/(['"])[^"']*\1/g, ''); //to make the following regexp safe
var reg = /([^\s=]+)=/g;
var m, key;
while((m = reg.exec(s))){
key = m[1];
if(key.substr(0,3) != '_dj'){
if(key == 'src' || key == 'href'){
if(node.getAttribute('_djrealurl')){
attrarray.push([key,node.getAttribute('_djrealurl')]);
continue;
}
}
var val;
switch(key){
case 'style':
val = node.style.cssText.toLowerCase();
break;
case 'class':
val = node.className;
break;
default:
val = node.getAttribute(key);
}
attrarray.push([key, val.toString()]);
}
}
}else{
var attr, i = 0;
while((attr = node.attributes[i++])){
//ignore all attributes starting with _dj which are
//internal temporary attributes used by the editor
var n = attr.name;
if(n.substr(0,3) != '_dj' /*&&
(attr.specified == undefined || attr.specified)*/){
var v = attr.value;
if(n == 'src' || n == 'href'){
if(node.getAttribute('_djrealurl')){
v = node.getAttribute('_djrealurl');
}
}
attrarray.push([n,v]);
}
}
}
attrarray.sort(function(a,b){
return a[0]' + dijit._editor.getChildrenHtml(node)+''+node.nodeName.toLowerCase()+'>';
}else{
output += ' />';
}
break;
case 3: //text
// FIXME:
output = dijit._editor.escapeXml(node.nodeValue, true);
break;
case 8: //comment
// FIXME:
output = '';
break;
default:
output = "";
}
return output;";s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:29:"dijit._editor.getChildrenHtml";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:3:"dom";a:1:{s:4:"type";s:7:"DomNode";}}s:6:"source";s:1052:" var out = "";
if(!dom){ return out; }
var nodes = dom["childNodes"] || dom;
//IE issue.
//If we have an actual node we can check parent relationships on for IE,
//We should check, as IE sometimes builds invalid DOMS. If no parent, we can't check
//And should just process it and hope for the best.
var checkParent = !dojo.isIE || nodes !== dom;
var node, i = 0;
while((node = nodes[i++])){
//IE is broken. DOMs are supposed to be a tree. But in the case of malformed HTML, IE generates a graph
//meaning one node ends up with multiple references (multiple parents). This is totally wrong and invalid, but
//such is what it is. We have to keep track and check for this because otherise the source output HTML will have dups.
//No other browser generates a graph. Leave it to IE to break a fundamental DOM rule. So, we check the parent if we can
//If we can't, nothing more we can do other than walk it.
if(!checkParent || node.parentNode == dom){
out += dijit._editor.getNodeHtml(node);
}
}
return out; // String";s:7:"summary";s:50:"Returns the html content of a DomNode and children";s:7:"returns";s:6:"String";s:14:"private_parent";b:1;}s:18:"dijit._editor.html";a:3:{s:4:"type";s:6:"Object";s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:13:"dijit._editor";a:3:{s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:5:"dijit";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}