使用 innerHTML给文本域赋值时。。得到的代码在IE 6.0 里的是大写的字母,有些属性没有双引号
<FONT COLOR=red>51js论坛</FONT> 不符合标准。。这个用js要怎样处理成<font color="red">51js论坛</font>html代码标签都变成小定。。属性无双引号的自动加上双引号。。?
我是从HTML编辑器里获取的。
<FONT COLOR=red>51js论坛</FONT> 不符合标准。。这个用js要怎样处理成<font color="red">51js论坛</font>html代码标签都变成小定。。属性无双引号的自动加上双引号。。?
我是从HTML编辑器里获取的。
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>
html本来就不规范,只要可以显示页面没有错误就可以了
当然像lz那样规范点就更好了
//将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();});
}