Angular版本1.2.4在IE11的IE8模式下出错解决方案

  今天,群里一个兄弟抛出一个问题(如上),截图说明。

  

  打断点调试下,貌似是console里面的log方法出错了,如下:

  

  这个是console的log方法,为什么错呢,继续:

  

  我们会发现,在这里是检测function的apply方法,但是我们在控制台输入typeof logFn会发现,输出的是”object”,竟然是object!!!好吧,这算是找到问题了。那么,怎么办呢?

  我想了个笨方法,你不是"object"么,那我就手动改成"function"!于是我在使用angular之前进行了下判断,继续调试:

  

  乖乖,改了console.log,现在又冒出来个info:

  

  看来还是应该先看看console下都有什么。首先我们打开IE8中console的结构:

  

  发现所有的都是空的object,为了对比,我们打开chrome的console结构:

  

  对比发现,console是object,可以遍历咯。我们会发现console下面其实都应该是function才对。那么开干:

  

  我们遍历console,把里面不是function的都写成空的function。

  

  长叹一口气:终于都好了哟。好吧,放在这里不得不说的是,这样的方法也是有弊端的。

  

  我查看了下,在chrome下console下面有个属性是memory,是object,

那我们的方法在chrome下就会导致这个属性失效,继续改进:

  

  我们就判断是不是IE,如果是IE的化才进行相关操作。

  好了,现在已经避免了chrome的修改,也算是基本完善了。当然,方法比较简单,肯定还是有很多问题,希望大家发现了一同改进。

posted on 2016-12-26 16:51  螃蟹家  阅读(190)  评论(0编辑  收藏  举报

导航