使用 innerHTML给文本域赋值时。。得到的代码在IE 6.0  里的是大写的字母,有些属性没有双引号
<FONT COLOR=red>51js论坛</FONT> 不符合标准。。这个用js要怎样处理成<font color="red">51js论坛</font>html代码标签都变成小定。。属性无双引号的自动加上双引号。。?
我是从HTML编辑器里获取的。

解决方案 »

  1.   

    //将html标签到大小转换为小写并加双引号,IE时才调用
    function ieHTML(content)
    {
        var okText = content.replace(/<(\/?)(\w+)([^>]*)>/g,function(match,$1,$2,$3){
            if($1){
                    return "</"+ $2.toLowerCase() +">";      
            }      
            return ("<"+ $2.toLowerCase() +$3+">" ).replace(/=(("[^"]*?")|('[^']*?')|([\w\-\.]+))([\s>])/g,function(match2,$1,$2,$3,$4,$5,position,all){
                    if($4){
                            return '="'+ $4 +'"'+ $5;
                    }
                    return match2;
            })
    });return okText.replace(/<\/?([^>]+)>/g,function(lele){return lele.toLowerCase();});  //div的style="BORDER:1PX;"  style内容上面的要用它再转一次。
    }这个。。还不是很完善。。
    有些加不上引号。小写的没问题了。<font color=#00ffff>51js</font>color=  这里加不上引号。。pluginspage=http://  加不上引号"><embed style="width: 498px; height: 500px" pluginspage=http://www.macromedia.com/go/getflashplayer src=http://player.youkdu.com/player.php/sid/xmte0odanjuy/v.sw width="498" height="500" type=application/x-shockwave-flash wmode="transparent" quality="high"></embed>
      

  2.   


    html本来就不规范,只要可以显示页面没有错误就可以了
    当然像lz那样规范点就更好了
      

  3.   


    //将html标签到大小转换为小写并属性加双引号,IE时才调用
    function ieHTML(content)
    {
      var okText = content.replace(/<(\/?)(\w+)([^>]*)>/g,function(match,$1,$2,$3){
            if($1){
                    return "</"+ $2.toLowerCase() +">";     
            }
            return ("<" + $2.toLowerCase() + $3 + ">").replace(/=(("[^"]*?")|('[^']*?')|([^\s]+))([\s>])/g,function(match2,$1,$2,$3,$4,$5, position,all) {
                    if($4){
                            return '="'+ $4 +'"'+ $5;
                    }
                    return match2;
            })
    });
        return okText.replace(/(\s)style=".*:/g,function(lele){return lele.toLowerCase();});
    }