分享

Extjs 2.x 在ie8下 datefield 的width错误解决

 windli笔记 2012-11-14
Extjs 2.x 在ie8下 datefield 的width错误解决



第一篇博文,解决开发中遇到的实际问题


EXTJS 2.x的datefield 在ie8会产生width错误,网上搜索了一下,找到的解决办法是添加以下代码:


 

  • Ext.override(Ext.menu.Menu, {   
  •     autoWidth : function(){   
  •         var el = this.el, ul = this.ul;   
  •         if(!el){   
  •             return;   
  •         }   
  •         var w = this.width;   
  •         if(w){   
  •             el.setWidth(w);   
  •         }else if(Ext.isIE && !Ext.isIE8){   
  •             el.setWidth(this.minWidth);   
  •             var t = el.dom.offsetWidth; // force recalc   
  •             el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));   
  •         }   
  •     }   
  • });  

  • 照做了,错误依旧


    再次搜索,据说更改css可解决,比较懒,不想研究extjs庞大的css


    忽然想到ie8在css上有一个比较娇贵的特性:不加单位它就不好好给你显示


    然后又忽然想到extjs2.x的变态特性:有关width height只接受整数


    然后对上述办法进行改造


    Ext.override(Ext.menu.Menu, {
        autoWidth: function() {
            this.width += "px";
        }
    }); 


    上天保佑 它成功鸟


    由此十分怀疑extjs 2.x在ie8下的正常排版


    据说到3.0后解决了,没用过3.0,但是按extjs这种整数特性,依然报怀疑态度,要是哪天还是遇到类似问题,还是照此怀疑好了

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多