总结一下,最近碰到的问题吧,防止以后再出类似的,忘记怎么解决了。
1:部分IE6下,document.body.clientHeight,document.body.clientWidth 发生的问题
现象:
页面最开始,用document.body.clientHeight获取到了正确的数值,这个数值是CSS定义的,容器里面没有内容,如果后面对容器设置了高度,比如dom('recommend-list').style.height = "360px";则document.body.clientHeight取得到的数值就发生了变化,而且这个数值没有规律,怎么计算也没算出为什么是这个数值,后来还找到了有个临界点。。。
解决:
不管他如何诡异,也只是部分IE6出现,于是想到了hack,肯定跟CSS,高度定义什么的有关系,于是尝试在容器上,针对IE6加一个height:auto;_height:100%;竟然就解决了,后来细想了一下,好像加这个确实是正确的,应该加上。
2:iframe加载第三方的页面发生的问题
以前一直认为,用iframe加载别人的页面,就是完全和别人隔离开,他们的页面有问题,也不会影响我们的页面,后来证实不是这样的,如果第三方页面JS弹窗报错,也会很直观的影响到我们的页面。
3:操作大量的DOM对象,在浏览器里看的时候没问题,但是如果你的页面是被嵌入在C++这样的客户端软件里的时候,要小心了
现象:
有个页面,他的某一块div里的结构想实现随机排序功能,于是就操作那块div,进行各种换位置,主要是用到了insertBefore和insertAfter的换位功能,在各个浏览器里都正常,唯独放在客户端里,就要空白2到4秒左右,而且是必现。这种问题,以前也碰到过,是在用那个IE6,PNG滤镜的JS的时候,遇到了,那个JS是整体渲染页面里的图片,也是在客户端里就空白几秒钟。。。
解决:
既然我不知道你为什么空白,但是我知道,肯定跟这种大量操作DOM有关系,貌似是顺序什么的吧,OK,我就做一个延迟处理,等页面完成后,过500毫秒,我再去做那个操作DOM的随机排序功能,OK,问题解决。