精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-17
废话再多说,直接让代码来说明一切. <html> <head> <script language="JavaScript"> function fireBug(buttonObj){ buttonObj.disabled=true; } </script> </head> <body> <input type="button" value="fire bug" onmouseup="fireBug(this)" > <br/> <!-- 以下元素只是帮助判断页面假死状态 --> <select > <option value="111" selected>111</option> <option value="222">222</option> </select> <br/> <input type="text" value=""/> </body> </html> 以上代码在IE6 下会让页面呈现假死状态. 想让IE脱离假死状态,只有让IE窗口失去焦点再获得. 这个BUG在IE7下已经修复. 在IE6下的解决方案有3种: 1 使用onclick代替onmouseup. 2 如果必须使用onmuseup,那么需要使用window.setTimeout来延后运行buttonObj.disabled=true;语句 3 在disabled=true之后执行个 window.blur()或者alert 或者 confirm或者window.open....总之执行一个让当前窗口失去焦点再获得的js语句. 不知道这个bug的标准的描述是怎样的,总之在一个完整的click事件发生之前,如果将事件的源弄成了disabled的,那么ie6就会有问题. 这个bug可能早就地球人都知道了,但是我确实是才发现的,那就见笑了. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-17
不是我 我是13号发现的 呵呵
|
|
返回顶楼 | |
发表时间:2007-08-17
这是ie的bug,但是这个代码的逻辑也不对。想要表达的意思是click之后disable这个Button,但是mouseup可能并不是一次click,比如在其他地方mousedown,然后移动到这个button上释放。
|
|
返回顶楼 | |
发表时间:2007-08-17
hax说得对,比如在其他地方mousedown,然后移动到这个button上释放就不会出现假死现象了
|
|
返回顶楼 | |
发表时间:2007-08-20
LZ最后一天还这么敬业,皮肤啊
|
|
返回顶楼 | |
发表时间:2007-09-06
一个不错的bug。
|
|
返回顶楼 | |
发表时间:2007-09-06
失去焦点后,再进去,就不会出现假死了.
|
|
返回顶楼 | |
发表时间:2007-09-07
将焦点指向 buttonObj 以外的元素即可
例如 document.getElementById('elementId').focus(); |
|
返回顶楼 | |
发表时间:2008-06-26
汗.... 看了好久你的文章...原来是以前是NEU的....同事啊.... 呵呵... 不过小弟依然在NEU受罪...
|
|
返回顶楼 | |
发表时间:2008-08-11
日,原来你是NEU的~~晕啊!!
小弟也是啊! |
|
返回顶楼 | |