2012-04-17 33 views
15

我有一个显示SVG图形的图形页面。我正在使用Raphael图形框架。该页面在Firefox中正确显示,而且如果F12开发人员工具在IE9中设置为“开启”,则工作正常。 如果F12开发人员模式被设置并且应用程序在清除浏览器缓存(模拟普通用户)的情况下启动,则该地图会在IE9中显示部分数据(其节点链接图,并且仅显示12个节点中的一个子节点)。控制台在IE9中未定义错误

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

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

谢谢。

回答

39

也许你的代码或你打电话的代码是使用console.log或类似的东西。

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

if(!(window.console && console.log)) { 
    console = { 
    log: function(){}, 
    debug: function(){}, 
    info: function(){}, 
    warn: function(){}, 
    error: function(){} 
    }; 
} 
2

你的代码中是否有console.log()或console.error()调用?

+0

据推测,它的控制台错误得到显示,搞清楚它在哪里被调用。 – 2012-04-17 00:33:33

8

的问题是,你的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; 
})(); 

这将创建一个“伪”控制台只有当它不存在,让“控制台是未定义”错误将消失。

希望这会有所帮助。 干杯

相关问题