论坛首页 Web前端技术论坛

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

浏览 41477 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-05-11  
netix1999 写道
realazy的例子中
"另一个例子",如果没有打开输入法
onkeypress事件能正常激活
打开输入法后,输入的汉字就不能激活事件了

我很好奇 google 的搜索框中
打开输入法,当输入拼音,还没形成汉字进入输入框时
它的可选搜索结果就出现在下拉框中了
这是怎么实现的?


试试我说的那个(也就是第一个例子)吧。

关于onkeypress,实际上并没有标准可循。一般浏览器都会将所输入的完整字符作为keypress事件。将来也许会标准化为textinput事件。使用输入法时,输入的字母并不会最后形成完整字符,自然不会触发keypress。

google可能用的keydown事件。Windows输入法上有个特点,keydown事件还是会出现的,但是keyup和keypress事件则不会出现。实际上IE中的这些事件貌似是直接对应某几种windows消息(又,我忘记具体消息名称了),而且我记得是会出现keyup事件,但是keycode与keydown的keycode值不一样,是一个固定的表示输入法消息的值。
0 请登录后投票
   发表时间:2008-05-11  
试了一下第一个例子
打开输入法点击"生成input”
页面的输入焦点就挪到setTimeout的label上了
再敲键就能在原先不可能接收输入的label上增加字符

牛逼,老外确实发现不了这个bug
12 请登录后投票
   发表时间:2008-05-11  
呵呵。其实这个有趣的bug按说应该很容易被国人(还有日本人韩国人等需要输入法的)发现,不过不知道为什么一直未见有记载。
0 请登录后投票
   发表时间:2008-05-11  
就当是个圣诞节彩蛋吧
0 请登录后投票
   发表时间:2008-05-11  
我晕呀,
什么BUG呀,我说我怎么发现不了。
你用什么输入法呀!
我用google/sogou拼音都没有发现这个问题。
输入法的BUG吧!
0 请登录后投票
   发表时间:2008-05-11  
刚才用微软拼音,全拼,双拼,google拼音都试过了
是ie bug, 不是输入法的
0 请登录后投票
   发表时间:2008-05-11  
为什么会焦点会移动到最上面的Settimeout上呢?而不是移动到靠近的那个settimeout上?
0 请登录后投票
   发表时间:2008-05-11  
太强了 这个应该报告给Ms啦 hoho
0 请登录后投票
   发表时间:2008-05-11  
不是一般nb,非常nb,输入法和ie...电脑真奇妙
0 请登录后投票
   发表时间:2008-05-11  
wacaoren 写道
为什么会焦点会移动到最上面的Settimeout上呢?而不是移动到靠近的那个settimeout上?


oh,我又看了一下,我原来对button元素的描述有误。点击它之后,焦点并不是跑到直接的父层元素,而是到canvas上去了。

实际上大多数元素你都会看到是插入到被点击的元素内部。更确切的说,插入到点击的那个点,就好像它成了一个编辑框,光标跑到了你点击的地方一样。比方说如果是<div>abcd</div>,你点击b和c之间,则插入的字符就到了b和c之间。

但是<button>元素和一般div之类的元素不同(包括与<input type=button>也不同)。测试结果表明<button>上的mousedown之后,焦点会跑到canvas(body或html元素)上,更确切的说是canvas上第一个插入点。至于说为什么会这样,看来只有问IE team了。。。
0 请登录后投票
论坛首页 Web前端技术版

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