yui的alert在ie10下白屏的解决思路

南笙酒味 提交于 2019-12-09 15:43:32

      最近接到一个jira:在ie10下,页面弹出提示框后,背景全部白屏了。

      说实话,一看到这样特定浏览器下出现问题的jira我就很头疼,也很畏惧。最开始的思路就是F12 ,debug js代码,看执行哪个js语句后白屏了。但是ie10的debug还是相当不好用,用的非常不顺手。执行来执行去,还是没有找到好的解决方法,就这样拖了一天,实在是无思路,就问我leader了。

      结果我leader一来,不是先调试js,而是直接对比 出现正常遮罩的页面 ie10的白屏页面。看看这两者的css有何不同,结果发现chrome下有个 opacity:0,但是ie10没有;而且ie10还多了个iframe,等等细节吧。接着就找那个opacity,发现在一个js代码中有个判断:if(document.all){//代码1}else{//代码2}

      是之前ie6789跟chrome ff的处理不同,所以针对ie浏览器做了特殊处理。但是现在ie10跟chrome的实现又相同了,进入特意为ie修的bug的方法又不正常了!晕死啊!这可真是实实在在的 找bug!

      所以我修改一下判断,不用document.all判断,方法如下。不过还没复查,不知道有没有问题。

function getIEVersionGt10() {
   var userAgent = navigator.userAgent;
   //这里只是判断了ie10,如果是要判断ie10及其以上版本 匹配 “MSIE 1”不知是不是更好点
   if ((userAgent.indexOf("MSIE") != -1) && (userAgent.indexOf("MSIE 10") == -1)) {
       return true;
   } else {
       return false;
   }
}

      总之觉得leader的解决问题的方法很值得学习,不要一来就js debug,而且debug难以发现问题,就要换种思路!从现象找齐,追根溯源。

      现在还有一个问题,就是ie10下,alert出来的框框在管理界面不能移动,在前台界面可以。可能还是css问题导致的吧!今早弄了一上午没解决,心里烦躁就记下这篇文章,当做中场休息。继续找bug吧!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!