最近接到一个jira:在ie10下,页面弹出提示框后,背景所有白屏了。 css
说实话,一看到这样特定浏览器下出现问题的jira我就很头疼,也很畏惧。最开始的思路就是F12 ,debug js代码,看执行哪一个js语句后白屏了。可是ie10的debug仍是至关很差用,用的很是不顺手。执行来执行去,仍是没有找到好的解决方法,就这样拖了一天,实在是无思路,就问我leader了。 chrome
结果我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判断,方法以下。不过还没复查,不知道有没有问题。 spa
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难以发现问题,就要换种思路!从现象找齐,追根溯源。 debug
如今还有一个问题,就是ie10下,alert出来的框框在管理界面不能移动,在前台界面能够。可能仍是css问题致使的吧!今早弄了一上午没解决,内心烦躁就记下这篇文章,当作中场休息。继续找bug吧! 调试