技术 · 2013 年 12 月 18 日

IE7、IE8、IE9不支持alert和confirm

突然收到客人的一封邮件,说是有问题……
看了客人的浏览记录进行测试发现正常,后来发现客人使用的是XP系统,IE8,试了兼容性,发现果然有问题……没有反应。
最后发现,是IE7、IE8、IE9不支持js的alert和confirm……
比如下面的代码,在其他浏览器都正常,但是IE7、IE8、IE9点击后没有反应。

<script type="text/javascript">
function show_confirm()
{
var r=confirm("Press a button!");
if (r==true)
  {
  alert("You pressed OK!");
  }
else
  {
  alert("You pressed Cancel!");
  }
}
</script>
<input type="button" onclick="show_confirm()" value="Show a confirm box" />

解决办法只能是在js(支持jQuery)中增加判断

if ($.browser.msie && ($.browser.version == "7.0") || ($.browser.version == "8.0") || ($.browser.version == "9.0")) { }

纯js(没有jQuery)

var userAgent = window.navigator.userAgent;  
if (userAgent.indexOf("MSIE 7.0")>0 || userAgent.indexOf("MSIE 8.0")>0 || userAgent.indexOf("MSIE 9.0")>0) { }
好吧,后来经过虚拟机实景测试,WIN7下,IE8,正常,只是IETester的问题,这个坑爹货( ▼-▼ )