最近在处理静态化模板的时候,动态生成右上角登录框,出现了IE7无法显示的问题。
在IE7中一闪而过。
但是在IE8、firefox、chrome 中都能正常显示。
源码如下(涉及商业问题,略作修改):
//登录html function DLH(loginName){ var dengl = ""; dengl+='<tr>'; dengl+=' <td>您好,'+loginName+' 【<a href="javascript:logout();">退出登录</a>】【<a href="userQ.html">我的组织</a>】 <a href="#">帮助</a></td>'; dengl+='</tr></tbody>'; return dengl; }
之后发现此源码并不是很规范,没有严格执行W3C标准,才会出现以上不兼容问题!
更改的地方其实很简单,就是增加 <tbody>
修改后如下:
//登录html function DLH(loginName){ var dengl = ""; dengl+='<tbody><tr>'; dengl+=' <td>您好,'+loginName+' 【<a href="javascript:logout();">退出登录</a>】【<a href="userQ.html">我的组织</a>】 <a href="#">帮助</a></td>'; dengl+='</tr></tbody>'; return dengl; }
之后经过询问高人,明白了<thead> <tbody> <tfoot>的好处。
总结如下:
<table>
<thead><tr>...</tr></thead>
<tbody><tr>...</tr></tbody>
<tfoot><tr>...</tr></tfoot>
</table>
当然没有必要全都用到,但是必须记住的是如果有thead或tfoot,就必须要tbody。
加了tbody后准确来说并不是影响下载速度,而是呈现速度。
浏览器对Table的解释是等待整个table全部加载完才显示。
如果加入tbody,浏览器则一边下载一边显示已经下载的内容。