在IE9中,控制台是未定义的错误

pri*_*dev 16 javascript console internet-explorer-9

我有一个显示SVG图形的图形页面.我正在使用Raphael图形框架.该页面在Firefox中正确显示,如果在IE9中将F12开发人员工具设置为"on",则可以正常工作.如果F12开发人员模式已启动且应用程序启动且浏览器缓存已清除(模拟普通用户),则地图将显示IE9中的部分数据(其节点链接图,并且仅显示12个节点中的一个子节点).

更新:我保持​​调试器打开并显示错误"控制台未定义".所以我认为它不是图形渲染问题,而且我没有明确地使用控制台,也许思维导图js在内部使用它,但如何再次摆脱这个问题?

更新:我发现了问题,并从js文件中注释掉了console.log条目.

谢谢.

Kip*_*Kip 41

可能是您的代码或您正在调用的代码正在使用console.log或类似的东西.

您可以在全局范围中添加此代码,以便为IE(或任何不支持它的浏览器)创建虚拟包装器.在调用任何其他库之前,只需将以下代码放在某处:

if(!(window.console && console.log)) {
  console = {
    log: function(){},
    debug: function(){},
    info: function(){},
    warn: function(){},
    error: function(){}
  };
}
Run Code Online (Sandbox Code Playgroud)


Edg*_*ado 9

问题是你的js代码有时会调用一个控制台方法,例如'console.log',但你的浏览器没有控制台(或者它关闭了);

要解决此问题,请在包含任何脚本之前添加(一次):

//Ensures there will be no 'console is undefined' errors
window.console = window.console || (function(){
    var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){};
    return c;
})();
Run Code Online (Sandbox Code Playgroud)

这将创建一个'伪'控制台,只有它不存在,以便'控制台未定义'错误将消失.

希望这可以帮助.干杯