Roo.htmleditor.Filter=function(A){Roo.apply(this.cfg);};Roo.htmleditor.Filter.prototype={node:false,tag:false,replaceComment:false,replaceTag:false,walk:function(A){Roo.each(Array.from(A.childNodes),function(e){switch(true){case e.nodeType==8&&this.replaceComment!==false:this.replaceComment(e);
return;case e.nodeType!=1:return;case this.tag===true:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='object'&&this.tag.indexOf(":")>-1:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='string'&&this.tag==":":case typeof(this.tag)=='object'&&this.tag.indexOf(e.tagName)>-1:case typeof(this.tag)=='string'&&this.tag==e.tagName:if(this.replaceTag&&false===this.replaceTag(e)){return;
}if(e.hasChildNodes()){this.walk(e);}return;default:if(e.hasChildNodes()){this.walk(e);}}},this);},removeNodeKeepChildren:function(A){ar=Array.from(A.childNodes);for(var i=0;i<ar.length;i++){A.removeChild(ar[i]);A.parentNode.insertBefore(ar[i],A);}A.parentNode.removeChild(A);
-},walkTag:function(A){if(this.tag===false){return;}Roo.log('WALK TAG');var B=A.getElementsByTagName(this.tag);Roo.log(B.length);for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}Roo.log(B.length);}}};
+},walkTag:function(A){if(this.tag===false){return;}var B=A.getElementsByTagName(this.tag);var l=B.length;for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}if(l!=B.length){l=B.length;i--;}}}};
// Roo/htmleditor/FilterAttributes.js
Roo.htmleditor.FilterAttributes=function(A){Roo.apply(this,A);this.attrib_black=this.attrib_black||[];this.attrib_white=this.attrib_white||[];this.attrib_clean=this.attrib_clean||[];this.style_white=this.style_white||[];this.style_black=this.style_black||[];
this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterAttributes,Roo.htmleditor.Filter,{tag:true,attrib_black:false,attrib_clean:false,attrib_white:false,style_white:false,style_black:false,replaceTag:function(A){if(!A.attributes||!A.attributes.length){return true;
return;
}
- Roo.log('WALK TAG');
var els = dom.getElementsByTagName(this.tag);
- Roo.log(els.length);
+ var l = els.length;
for(var i = 0 ; i < els.length; i++) {
if(this.replaceTag) {
this.replaceTag(els[i]);
}
- Roo.log(els.length);
+
+ // a node is removed
+ if(l != els.length) {
+ l = els.length;
+ i --;
+ }
}
}
};
Roo.htmleditor.Filter=function(A){Roo.apply(this.cfg);};Roo.htmleditor.Filter.prototype={node:false,tag:false,replaceComment:false,replaceTag:false,walk:function(A){Roo.each(Array.from(A.childNodes),function(e){switch(true){case e.nodeType==8&&this.replaceComment!==false:this.replaceComment(e);
return;case e.nodeType!=1:return;case this.tag===true:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='object'&&this.tag.indexOf(":")>-1:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='string'&&this.tag==":":case typeof(this.tag)=='object'&&this.tag.indexOf(e.tagName)>-1:case typeof(this.tag)=='string'&&this.tag==e.tagName:if(this.replaceTag&&false===this.replaceTag(e)){return;
}if(e.hasChildNodes()){this.walk(e);}return;default:if(e.hasChildNodes()){this.walk(e);}}},this);},removeNodeKeepChildren:function(A){ar=Array.from(A.childNodes);for(var i=0;i<ar.length;i++){A.removeChild(ar[i]);A.parentNode.insertBefore(ar[i],A);}A.parentNode.removeChild(A);
-},walkTag:function(A){if(this.tag===false){return;}Roo.log('WALK TAG');var B=A.getElementsByTagName(this.tag);Roo.log(B.length);for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}Roo.log(B.length);}}};
+},walkTag:function(A){if(this.tag===false){return;}var B=A.getElementsByTagName(this.tag);var l=B.length;for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}if(l!=B.length){l=B.length;i--;}}}};
// Roo/htmleditor/FilterAttributes.js
Roo.htmleditor.FilterAttributes=function(A){Roo.apply(this,A);this.attrib_black=this.attrib_black||[];this.attrib_white=this.attrib_white||[];this.attrib_clean=this.attrib_clean||[];this.style_white=this.style_white||[];this.style_black=this.style_black||[];
this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterAttributes,Roo.htmleditor.Filter,{tag:true,attrib_black:false,attrib_clean:false,attrib_white:false,style_white:false,style_black:false,replaceTag:function(A){if(!A.attributes||!A.attributes.length){return true;
return;
}
- Roo.log('WALK TAG');
var els = dom.getElementsByTagName(this.tag);
- Roo.log(els.length);
+ var l = els.length;
for(var i = 0 ; i < els.length; i++) {
if(this.replaceTag) {
this.replaceTag(els[i]);
}
- Roo.log(els.length);
+
+ // a node is removed
+ if(l != els.length) {
+ l = els.length;
+ i --;
+ }
}
}
};
return;
}
- Roo.log('WALK TAG');
var els = dom.getElementsByTagName(this.tag);
- Roo.log(els.length);
+ var l = els.length;
for(var i = 0 ; i < els.length; i++) {
if(this.replaceTag) {
this.replaceTag(els[i]);
}
- Roo.log(els.length);
+
+ // a node is removed
+ if(l != els.length) {
+ l = els.length;
+ i --;
+ }
}
}
};
Roo.htmleditor.Filter=function(A){Roo.apply(this.cfg);};Roo.htmleditor.Filter.prototype={node:false,tag:false,replaceComment:false,replaceTag:false,walk:function(A){Roo.each(Array.from(A.childNodes),function(e){switch(true){case e.nodeType==8&&this.replaceComment!==false:this.replaceComment(e);
return;case e.nodeType!=1:return;case this.tag===true:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='object'&&this.tag.indexOf(":")>-1:case e.tagName.indexOf(":")>-1&&typeof(this.tag)=='string'&&this.tag==":":case typeof(this.tag)=='object'&&this.tag.indexOf(e.tagName)>-1:case typeof(this.tag)=='string'&&this.tag==e.tagName:if(this.replaceTag&&false===this.replaceTag(e)){return;
}if(e.hasChildNodes()){this.walk(e);}return;default:if(e.hasChildNodes()){this.walk(e);}}},this);},removeNodeKeepChildren:function(A){ar=Array.from(A.childNodes);for(var i=0;i<ar.length;i++){A.removeChild(ar[i]);A.parentNode.insertBefore(ar[i],A);}A.parentNode.removeChild(A);
-},walkTag:function(A){if(this.tag===false){return;}Roo.log('WALK TAG');var B=A.getElementsByTagName(this.tag);Roo.log(B.length);for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}Roo.log(B.length);}}};
+},walkTag:function(A){if(this.tag===false){return;}var B=A.getElementsByTagName(this.tag);var l=B.length;for(var i=0;i<B.length;i++){if(this.replaceTag){this.replaceTag(B[i]);}if(l!=B.length){l=B.length;i--;}}}};
// Roo/htmleditor/FilterAttributes.js
Roo.htmleditor.FilterAttributes=function(A){Roo.apply(this,A);this.attrib_black=this.attrib_black||[];this.attrib_white=this.attrib_white||[];this.attrib_clean=this.attrib_clean||[];this.style_white=this.style_white||[];this.style_black=this.style_black||[];
this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterAttributes,Roo.htmleditor.Filter,{tag:true,attrib_black:false,attrib_clean:false,attrib_white:false,style_white:false,style_black:false,replaceTag:function(A){if(!A.attributes||!A.attributes.length){return true;