function String.Convert(v,dv)
{
if(typeof(v)=="string")return v;
if(typeof(dv)=="undefined")dv="";
else dv=String.Convert(dv);
if(typeof(v)=="number")return v.toString();
if(typeof(v)=="undefined")return dv;
if(v===null)return dv;
if(v===false) return dv;
try{
v=v+""
if(v==="undefined")return dv;
return String.Convert(v,dv);
}catch(x){}
return "[unconvertable]";
}
function String.prototype.EncodeJScriptCode()
{
var str=this;
str=str.replace(/\x5c/g,"\\\\");
str=str.replace(/\x22/g,"\\\"");
str=str.replace(/\x27/g,"\\\'");
str=str.replace(/\t/g,"\\t");
str=str.replace(/\n/g,"\\\n");
str=str.replace(/\r/g,"\\r");
return str;
}function String.EncodeJScriptCode(str){return String.Convert(str).EncodeJScriptCode();}var str="\r\nookk\"\'kkoo\\ookk";//str=thetextarea.value;
alert("document.write(\""+str.EncodeJScriptCode()+"\")")一层又一层的话,就不断重复这个过程。

解决方案 »

  1.   

    例如
    var str="\r\nookk\"\'kkoo\\ookk";//str=thetextarea.value;
    var str2="document.write(\""+str.EncodeJScriptCode()+"\")";
    alert("<script>document.write(\""+str2.EncodeJScriptCode()+"\");<\/script>");
      

  2.   

    如果你的代码没有包含太多的JavaScript 变量,你可以把 innerHTML 的内容放在
    HTML 本身的一个隐藏的层里面,以后就可以使用obj.innerHTML= oDIV.innerHTML 了
      

  3.   


    <object data="htmltool.htm" height=240 id=htmlletter 
    style="LEFT: 0px; POSITION: absolute; TOP: 0px" 
    type="text/x-scriptlet" width="100%" viewastext></object>
    <script>
    function window.onload()
    {
    document.all.htmlletter.html="abc";
    document.all.htmlletter.html="<b>abc</b>";
    }
    </script>