论坛首页 Web前端技术论坛

西方人通常发现不了的一个IE的bug

浏览 41601 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-05-10  
hax 写道

实际上,这是IE的focus机制的bug。

是的,ie中input这样的控件在显示到页面之前设置focus是无效的,所以要setTimeout在控件显示之后设置focus
(不过例子中改成onclick更能说明问题)
除了focus,还有一些操作也是要显示之后才能生效,例如<input type=checkbox>的checked设置为true

另外ie还有一些诡异的情况:
创建 select multiple,并添加 options后,会默认选中第一个(ff、opera、safari都是无选项选中),也要在显示之后再去掉第一个选择,才能和其他浏览器保持一致
checkbox在失去焦点前onchange事件不会触发,但onclick会触发(ff等都会触发)
td的nowrap属性设置无效,要么用css的white-space:nowrap,要么document.createElement('<td nowrap>')

客户要求跨浏览器,就是处理ie这些问题最烦人
0 请登录后投票
   发表时间:2008-05-10  
birdjavaeye 写道
hax 写道

实际上,这是IE的focus机制的bug。

是的,ie中input这样的控件在显示到页面之前设置focus是无效的,所以要setTimeout在控件显示之后设置focus


并非如此。你再看看我的主贴,其实和input是否显示出来是没有关系的。
0 请登录后投票
   发表时间:2008-05-10  
achun 写道
hax 写道
fins 写道
不知道为什么 西方人发现不了


开动脑筋啊。一样使用IE,我们跟西方人有什么区别呢?

还没有明显发现,不过发现如果点鼠标的中建(波轮),selected生效.
还有就是如果出滚动条的话,focus生效(FF也是这样).这个不算BUG吧!也就是特性吧.


大家加油喔。什么东西偶们使用,但是西方人不用的呢?
5 请登录后投票
   发表时间:2008-05-10  
不知道,mousedown就是会影响focus,在ff下面也是一样,timeout是在事件结素后执行,当然focus上了,西方人发现不了,是因为输入法,焦点在输入法和ie之间大概会有问题的意思吧(本论坛有bug,在页面1提交回复,竟然直接更新到页面1底下了)
0 请登录后投票
   发表时间:2008-05-10  
hax 写道
achun 写道
hax 写道
fins 写道
不知道为什么 西方人发现不了


开动脑筋啊。一样使用IE,我们跟西方人有什么区别呢?

还没有明显发现,不过发现如果点鼠标的中建(波轮),selected生效.
还有就是如果出滚动条的话,focus生效(FF也是这样).这个不算BUG吧!也就是特性吧.


大家加油喔。什么东西偶们使用,但是西方人不用的呢?

西方人一般不用IE?
还是说西方人页面根本不那么花哨?简简单单~?
0 请登录后投票
   发表时间:2008-05-10  
跟语言有关系?
0 请登录后投票
   发表时间:2008-05-11  
咖啡舞者 写道
hax 写道
achun 写道
hax 写道
fins 写道
不知道为什么 西方人发现不了


开动脑筋啊。一样使用IE,我们跟西方人有什么区别呢?

还没有明显发现,不过发现如果点鼠标的中建(波轮),selected生效.
还有就是如果出滚动条的话,focus生效(FF也是这样).这个不算BUG吧!也就是特性吧.


大家加油喔。什么东西偶们使用,但是西方人不用的呢?

西方人一般不用IE?
还是说西方人页面根本不那么花哨?简简单单~?


大概是说输入法了? 还是请老大别卖关子了
0 请登录后投票
   发表时间:2008-05-11  
afcn0 写道
西方人发现不了,是因为输入法,焦点在输入法和ie之间大概会有问题的意思吧


bingo. 请try一下我ding楼给的realazy的原有例子罢。


BTW,JE的编辑器说我这篇有“我ding”之类的嫌疑。。。难道是因为ding楼这个词??这也太敏感了罢。
0 请登录后投票
   发表时间:2008-05-11  
realazy的例子中
"另一个例子",如果没有打开输入法
onkeypress事件能正常激活
打开输入法后,输入的汉字就不能激活事件了

我很好奇 google 的搜索框中
打开输入法,当输入拼音,还没形成汉字进入输入框时
它的可选搜索结果就出现在下拉框中了
这是怎么实现的?
0 请登录后投票
   发表时间:2008-05-11  
fins 写道
down click up 这是事件处理的顺序
在down里做一些事情确实危险

例如 alert一个东西 那么click事件 就不能被正确的触发了


事件顺序应该是 down up click 吧
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics