EXTJS WIN8 IE10下遮罩层隐藏失败问题解决

来源:互联网 发布:淘宝怎么改密码手机上 编辑:程序博客网 时间:2024/06/01 07:19

    最近遇到一个奇怪的问题,项目使用EXTJS4.2,部分列表在  WIN8+IE10环境下,当列表出现横向滚动条时, 列表的遮罩层隐藏失败,列表会显示灰蒙蒙一遍,刷新也无效. 在WIN7环境下 IE9,IE10均无此问题.

 在两个环境中对比调试ext-debug-all代码,发现出现问题代码位置大概为:遮罩层的代码

,

经调试 改callParent也是调用hide方法...由于时间比较赶,用了临时解决方法,针对WIN8和IE10的环境作出特别调整,重写了Ext.loadMask类

//判断IE及系统版本. windows8+IE10环境下,Ext的loadMask出现无法隐藏问题. 暂时使用本方法进行解决.var hideMask = false;try{var dd = "";var appV = navigator.appVersion;var isWin8 = (appV.indexOf('Windows NT 6.2')!=-1);/*@cc_ondd = (@_jscript_version);if(dd==10&&isWin8){hideMask = true;} @*/}catch(e){alert(e)}

然后重写 LoadMask的mabeShow方法

Ext.override(Ext.LoadMask, {maybeShow: function() {        var me = this,            owner = me.getOwner();        if (!owner.isVisible(true)) {            me.showNext = true;        }        else if (me.loading && owner.rendered) {            me.show();            //如果windows8++及IE10++下取消EXT的grid遮罩初始显示.            if(hideMask){            me.hide();            }        }    }});

主要添加的是这段代码:                    if(hideMask){            me.hide();            }
IE10并且WIN8下, 遮罩层出现后直接隐藏, 成功隐藏掉.对其它环境没影响

再手动添加grid的遮罩

qsGridMask = new Ext.LoadMask(Ext.getCmp('creditQsGrid').getView(), {
msg : "加载中...",
msgCls : 'z-index:10000;'
});

再给store添加监听方法,开启和隐藏遮罩. 好了,大功告成.

record_store = Ext.create(                'Ext.data.JsonStore',                  {        fields: dataFields,        proxy: {   type: 'ajax',                           url : connObjUrl,                         async:false,                         getMethod: function(){ return 'POST'; },                         reader: {                              type: 'json',                                root: 'rows',                                totalProperty: 'total'                            },                          extraParams:{    dataProcess:dataProcess }             },             listeners:{             'beforeload':function(){             qsGridMask.show();             },             'datachanged':function(){             qsGridMask.hide();             }             }    }        );


问题现象图片如下, WIN8+IE10 灰色遮罩


 

0 0
原创粉丝点击