AJAXBBS.NET   yemoo's blog

专注WEB前端及RIA技术 -- XHTML/CSS/JavaScript/Ajax/RIA

导航

« 清除浮动的最简写法解决“引入同一个JS文件在非IE6中正常,但IE6报错”的问题 »

手动触发HTML页面重新渲染

随着项目的变大,暴露出来的奇怪问题越来越多,今天出现的这个问题令人感觉特别奇怪,这个问题是只在IE6中出现的,在IE6+的浏览器没有任何问题。

问题是这样的:页面中有一些select下拉框,当我通过左侧菜单栏分隔条上显示隐藏按钮隐藏和显示左侧菜单树时,下拉框都变得不可见了,开始以为是被程序隐藏了,后来出现更奇怪的现象让我排除了这个可能,这种消失的问题并不是每次都出现,有时是没有问题的,而且有时是页面部分下拉框不可见。此外,当在下拉框的位置处点击几次鼠标后有时也能莫明奇妙的又出现了。这种问题让我感觉真是无从下手,不过这种问题一般还是从简化页面来查找原因吧,先删除页面所有的css,发现问题依旧,看来跟css无关,看看js也没有什么问题,那只能是html的问题了,但是html结构也没有发现任何问题。莫非是ie6的渲染bug?要不然有时能显示,有时在页面上点击几下也能自动显示出来? 排除其他因素,最大的可能性就是这个了,之前就遇到过类似的IE6渲染HTML的问题。

找到问题,现在就是想办法在resize窗口(隐藏显示左侧区域)时,手动触发一次HTML渲染,以前好像在哪里看过zoom可以触发渲染,OK,加上这段代码:

window.attachEvent('onresize',function(){
 document.body.style.zoom='1.1';
 document.body.style.zoom=1;
});

测试了几次,果然解决了问题,看来这IE6真是有不少的问题啊,以后遇到类似的IE6展示异常的问题首先考虑是不是HTML渲染造成的。

Share

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

About ME

  • 网名:网者归来/yemoo,长期并将继续投身于WEB前端相关技术的学习和推广的大军中,目前就职于杭州,从事前端开发相关工作,有事可email/msn联系。
  • Email:netman8410#163.com
    MSN:yanwei8410#hotmail.com
    PS:牛B都是从傻B变来的

Search

网站分类

最近发表

最新评论及回复

文章归档

Powered By Z-Blog 1.8 Arwen Build 90619  豫ICP备06015770号

Copyright 2006-2009 AJAXBBS.NET. All Rights Reserved.