今天,群里一个兄弟抛出一个问题(如上),截图说明。
打断点调试下,貌似是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的修改,也算是基本完善了。当然,方法比较简单,肯定还是有很多问题,希望大家发现了一同改进。