在javascript中我们经常要动态的去改变HTML中某个容器的内容,也即改变innerHTML。有些时候,不仅仅要更改innerHTML,还要在新增加的内容中再嵌入新的script。这样会有一个问题出现,有个小的实例:
function addInnerHTML(){
var tmp = "?<";
document.getElementById(xxx).innerHTML="function ( ' "+tmp+" ' ){....}";
}
这样的时候新增加的function中接受的依然是转义之前的字符。
所以要注意的是这样复杂的变化时,对特殊字符的转义,最好放置于最内层的innerHTML,或者更直接的,不要用这么麻烦的方法去转义,使用<xmp></xmp>包裹的文本不会被HTML解析,可以使用xmp代替手动转义。
转载于:https://blog.51cto.com/haley/491503