问题是这样的:一个表格中(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三个浏览器中试试,是不是都正常了
