最近在调试个 bug,不开启控制台的话死活页面加载不出来。开启了控制台后页面就显示正常。
经过一顿搜索,得知在 ie9 下,如果不开启控制台的话,默认是没有 console 对象的,开启后则有。
汇总网上的解决方案,改造如下。新增 console.js,内容如下:
try{
console.log(11)
}catch (e){
;(function(g) {
'use strict';
var _console = g.console || {};
var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'exception', 'error', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
var console = {version: '0.1.0'};
var key;
for(var i = 0, len = methods.length; i < len; i++) {
key = methods[i];
console[key] = function (key) {
return function () {
if (typeof _console[key] === 'undefined') {
return 0;
}
Function.prototype.apply.call(_console[key], _console, arguments);
};
}(key);
}
g.console = console;
}(window));
}
在具体页面引用的时候使用只有 ie9 才能识别的脚本
<!--[if IE 9]>
<script src="console.js" type="text/javascript"></script>
<![endif]-->
参考方案
https://yanhaijing.com/javascript/2014/11/03/use-console.js/
网友评论