在东软工作的最后一天帮同事解决了一个问题,感觉很欣慰.
废话再多说,直接让代码来说明一切.
[code]
<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>
[/code]
以上代码在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可能早就地球人都知道了,但是我确实是才发现的,那就见笑了.
废话再多说,直接让代码来说明一切.
[code]
<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>
[/code]
以上代码在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可能早就地球人都知道了,但是我确实是才发现的,那就见笑了.