解决IE在JS下不渲染的bug
有时候,你会发现,在一些JS应用中,涉及到CSS的重新渲染(即页面样式需要更新)的话,IE死活不变。
此时你需要让IE重新渲染一下:
function handleIEhasLayout(){
//trigger re-rendering
document.body.style.zoom = 1.1;
//restore it
document.body.style.zoom = '';
}
有问题,记得执行一下handleIEhasLayout,万事OK。
bug重现以及延伸阅读:http://old9.blogsome.com/2006/07/26/ie6-reflow-bug/

April 2nd, 2007 at 15:30
看起来不错,btw,对IE来说,zoom这个属性倒是大有用处,在触发元素的layout时也能用到。
April 2nd, 2007 at 17:42
似乎标题应该是:解决JS在IE下不渲染的bug
April 2nd, 2007 at 18:58
同意Matt……
此外,我为什么没有遇到这个问题……
能总结一下具体触发原因么?
April 3rd, 2007 at 00:09
[...] 解决IE在JS下不渲染的bug [...]
April 4th, 2007 at 10:43
我是用1和100%之间切换的,呵呵。
http://old9.blogsome.com/2006/07/26/ie6-reflow-bug/
@aw,可以看下上面这例子
April 4th, 2007 at 22:08
死活不变时,我一般把触发变化的代码放到setTimeout中。你这个办法不错!“死活不变”,哈哈!
April 4th, 2007 at 22:15
原来刘丹同学在“校内”也遇到了这个问题,捣了一个晚上,ZOOM了一下就好了:)
April 8th, 2007 at 11:47
OMG,原来是这样。。。
April 11th, 2007 at 16:50
相对定位的层在改变窗口大小时也会有样式不渲染的问题.
June 6th, 2007 at 23:04
使用style.zoom在某些情况下还会出现不能全部渲染的问题,比如页面内容很少,没有占满屏幕。
我的方法是:
document.body.style.display = “none”;
document.body.style.display = “”;
不知道这种方法有没有缺陷,至少它解决了我的问题。
August 3rd, 2007 at 22:50
问题啊问题!嗬嗬受教了,解决了我一直的困惑。感谢版主