文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>IE把TAG标签名转为大写的处理

IE把TAG标签名转为大写的处理

时间:2007-07-28  来源:shiwudao

有时候需要把一段XML作为某个页面元素的内容传递,然后利用innerHTML读取,但是在IE下会自动的把TAG名转为大写,不符W3规范,有时候需要转为小写才可用。FF下则都为小写。 比如 <div id="testdiv">    <testtag>       <tag1 attr1="1231231"  attr2="1232"> data1            <tag2 attr1="ss"> data2            </tag2>       </tag1>       <tag3>data3</tag3>   </testtag> </div>   在IE6中使用document.getElementById('testdiv').innerHTML读取的字符串为 <TESTTAG><TAG1 attr1="1231231" attr2="1232">data1 <TAG2 attr1="ss">data2 </TAG2></TAG1><TAG3>data3</TAG3> </TESTTAG>   可以通过下面的函数进行转换 function convert(str) {
   var result = str.replace( /<(\/?)(\s*)([^\s\>]+)(\s|\>)/gi, tolower );
    //首先是以<开头     //接着可以有一个/,为结束tag的时候     //然后可以有若干个空格。  实际上如果tag名和开头的<之间有空格的话,IE,包括FF都不会认为这是合法的XML格式。不过为了健壮性还是处理吧。     //然后就是tag的名字,它至少有一个字符,并且不能为空格和>     //然后是空格(在有attribute的情况)或者直接是结束的>    return result;
   function tolower() {  //内部函数用于转换为小写
      var arg = arguments;
     if (arg.length > 0)
      return arg[0].toLowerCase();
 }
}
  经过转换后的字符串为 <testtag><tag1 attr1="1231231" attr2="1232">data1 <tag2 attr1="ss">data2 </tag2></tag1><tag3>data3</tag3> </testtag>   当然,这个小函数还没有考虑注释(<!-- -->以及,IE会去掉某些结束tag的问题,比如<p>,<li>之类的,不过一般情况已经够用了,或者你有兴趣可以自己添加。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载