问题是这样的:一个表格中(N行2列)的某一行先初始化的时候,这行使用了display:none隐藏了,然后通过某个事件,把显示出来。
看起来是个很容易的js,先给tr设置一个ID,然后使用document.getElementById("ID").style.display="block";就可以了。可这句在IE中是正常的,一点问题都没有。可把这个放到FF中,效果就不一样了。见下面的代码:
<table width="450" border="1" cellspacing="0" cellpadding="0"> <tr> <td> 百度</td> <td> csdn</td> </tr> <tr id="ID" style="display:none;"> <td> 站长网</td> <td> asp编程网</td> </tr> <tr> <td> 新浪</td> <td> google</td> </tr> </table> <input type="button" onClick="f()" value="显示" /> <script type="text/javascript"> function f(){ document.getElementById("ID").style.display="block"; } </script>(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
分别在IE、FF和Chrome中测试一下以上的代码,点击里面的显示按纽看看效果,两个明显不一样的效果
原因:这是两个不同的浏览器引起的
解决方法:要先判断是哪种浏览器,然后给display赋值不同的属性,IE中display赋值为block就可以了,FF和chrome中需要给display赋值为table-row。代码如下:
<table width="450" border="1" cellspacing="0" cellpadding="0"> <tr> <td> 百度</td> <td> csdn</td> </tr> <tr id="ID" style="display:none;"> <td> 站长网</td> <td> asp编程网</td> </tr> <tr> <td> 新浪</td> <td> google</td> </tr> </table> <input type="button" onClick="f()" value="显示" /> <script type="text/javascript"> var BrowseType=""; if(getbrowse()=="MSIE"){ BrowseType="block"; } else{ BrowseType="table-row"; } function f(){ document.getElementById("ID").style.display=BrowseType; } function getbrowse(){ //判断当前浏览器是何种浏览器 var str=""; // 包含「Opera」文字列 Agent=navigator.userAgent; if(Agent.indexOf("Opera") != -1) { str='Opera'; } // 包含「MSIE」文字列 else if(Agent.indexOf("MSIE") != -1) { str='MSIE'; } // 包含「Firefox」文字列 else if(Agent.indexOf("Firefox") != -1) { str='Firefox'; } // 包含「Netscape」文字列 else if(Agent.indexOf("Netscape") != -1) { str='Netscape'; } // 包含「Safari」文字列 else if(Agent.indexOf("Safari") != -1) { str='Safari'; } else{ } return str; } </script>(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
这样就解决了。
再去IE、FF和Chrome三个浏览器中试试,是不是都正常了