FF和 IE兼容问题 --baidu ,google 有种东西叫hack -踢飞浏览器不同一标准 这个破东西^_^

前几天傻哩八叽地改了个程序,觉得多出几行代码就顺手删了。刚跑到FireFox下一用,模态窗口弹不出来。

FireBug显示showModalDialog not defined

FireFox不支持showModalDialog(为什么?),只好用window.open代替了。

查了查老代码,是用document.all是否为true来决定showModalDialog还是window.open。

试了一下,FireFox支持document.all.*,但是document.all是个空对像,果然可以用来区分IE和firefox。

不过为什么要用document.all来判断而不直接识别浏览器呢?是因为方便还是document.all和showModalDialog有什么特别联系?

 

 

发现了个挺重要的问题,就是ie支持document.all 而firefox 不支持
所以,在开发通用web site时,就要避免这个问题,解决的方法有三个,就是改用下面三个tag的其中一个来代替document.all
document.getElementsByTagName("*") 可以得到得到所有元素的集合
document.getElementById             可以按id得到某一元素
document.getElementsByName         可以得到按name属性得到某一元素

 

 

 //var objs = document.forms[0].elements;
  //var objs = document.all;
  /*
  alert( (document.all?1:0));



通过:

document.getElementById('J_Test').style.display = 'none';
可以隐藏select元素。

但是通过:

document.body.id = 'page';
配合css代码:

#page select { display: none; }


在ie6下,无法隐藏select元素。
尝试position, setTimeout, 改变zoom到1.001等方法,均失败。

想起ie6下,臭名昭著的select需要用iframe遮罩的bug,估计和上面的bug根由是一样的:在ie6下,select是windowed element,其表现和普通的HTML elements有本质上的区别。至于究竟为何?估计只能去看微软的源码了。



var controls = document.frm.elements;

 

posted on 2009-09-18 02:47  dolphin_bobo  阅读(310)  评论(0编辑  收藏  举报

导航