17

我有一个显示 SVG 图形的图形页面。我正在使用 Raphael 图形框架。该页面在 Firefox 中正确显示,此外,如果 F12 开发人员工具在 IE9 中设置为“打开”,则它可以正常工作。如果 F12 开发者模式关闭并且应用程序在清除浏览器缓存的情况下启动(模拟普通用户),该地图在 IE9 中显示部分数据(它是一个节点链接图,它仅显示 12 个节点中的一个子节点)。

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

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

谢谢。

4

3 回答 3

43

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

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

if(!(window.console && console.log)) {
  console = {
    log: function(){},
    debug: function(){},
    info: function(){},
    warn: function(){},
    error: function(){}
  };
}
于 2012-04-17T00:37:18.100 回答
10

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

仅当它不存在时才会创建一个“伪”控制台,因此“控制台未定义”错误将消失。

希望这可以帮助。干杯

于 2012-07-24T20:04:32.297 回答
2

您的代码中有 console.log() 或 console.error() 调用吗?

于 2012-04-17T00:29:32.137 回答