在ext的editgrid中使用ComboBox时页面闪烁的怪现象

问题:

前一阵使用ext的editgrid时发现一个怪现象,在editgrid中添加一个ComboBox,设置为可根据输入内容过滤选项,发现当选项中有中文时,每次点击ComboBox使之打开或关闭下拉框时,页面会随之闪一下,闪烁幅度很小,对功能没有任何影响,但看起来很别扭。期间多次查找原因,一直没有解决,今天偶然发现了根源,但无很好的解决办法,记录、讨论。

浏览器IE6

 

分析:1、开始认为可能是页面样式设置有问题,删除所有css内容,问题依旧

2、怀疑是下拉选项中有中文造成的,删除所有中文内容,的确不再出现此问题,但业务需要中文内容,解决=没解决

3、尝试解读ext的js源码及自己写的前台编码及样式内容,未发现故障原因。

4、前几天偶然发现下拉选项中全是英文及数字的情况下,偶尔也会出现上述毛病,但出现次数很少,排除中文或字符编码问题的嫌疑

5、今天偶然发现下拉选项中有中文时,偶尔也不会出现闪烁问题,经过多次试验,总结出造成此问题的几个主要条件。

 

问题发生条件:

1、editgrid中有ComboBox下拉选择框

2、ComboBox为可编辑的

3、ComboBox获得焦点时打开了输入法

4、页面处于全屏状态下

 

此时再打开或关闭ComboBox的下拉选择框,页面就会出现闪烁情况。(是否有其他必要条件暂时未知)

 

总结原因:

1、在编辑ComboBox内容时打开了输入法,此时,输入法的状态栏  打开并显示,点击ComboBox打开或关闭下拉选择框时,输入法状态栏总要随之关闭、打开一次,页面随之发生闪烁。HTML原有控件不会出现此问题,ext的其他控件暂时也未发现此问题,唯独ComboBox发现此现象。(ComboBox下拉框打开关闭时实际使用的是两个控件?两个控件切换+输入法状态栏的闪烁造成显示界面的异常?有时间看看源码)。

 

解决:实际上也不算解决办法,只是避免满足问题的触发条件。

1、在输入法设置中设置"隐藏状态栏",打开输入法时不显示状态栏,则不出现此问题。

2、保证输入法的状态栏不在页面的显示区域内,比如页面不最大化,或保证输入法状态栏在IE浏览器的状态栏以下,也不会出现此问题

 

 

2010-11-30注:今天测试发现使用智能ABC、微软输入法会出现闪烁,使用搜狗输入法时,使用默认皮肤会造成闪烁,使用推荐皮肤则没问题,与输入法的皮肤实现方式有关?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值