【问题标题】:How to stop OpenLayers from loading firebug lite如何阻止 OpenLayers 加载 firebug lite
【发布时间】:2011-08-25 16:43:27
【问题描述】:

当我开始使用 OpenLayers 时,console.log 停止工作,并且我在 chrome 终端中不断收到此错误。

GET http://127.0.0.1/my/private/dir/undefined/firebug.html 404 (Not Found)

起初我没有意识到它是 OL,所以我卸载了 firebug lite 插件。然后我检查了 OL 源代码,发现它试图注入 firebug 的位置。

y=document.createElement("iframe");y.setAttribute("src",o+"/firebug.html");

除了修改源代码之外,有没有办法阻止 OL 这样做。此外,它正在覆盖 window.console

【问题讨论】:

  • google chorme 会发生什么?
  • 它尝试加载 firebug.html。另外,我很确定 window.console 正在被覆盖,这真的很烦人......

标签: javascript google-chrome firebug openlayers firebug-lite


【解决方案1】:

我遇到了同样的问题。 我通过添加以下内容暂时修复了它:

<script type="text/javascript">
        console.firebug=true;//fix the openlayer problem
</script>

在加载 openlayer 脚本之前。

原因: 以前版本的Openlayer的console.log是可以用的,现在不行,所以我查了一下源码发现有:

如果 (!window.console || !console.firebug) { ...

这意味着我猜如果没有 FIREBUG 控制台,控制台将被清理并覆盖。

我觉得应该是bug,所以就没有深入这个了,尝试尽快修复,等待Openlayer大佬修复的bug。

希望它对你有用,如果没有,请告诉我。

【讨论】:

  • 甜蜜!不久前我已经放弃了。
【解决方案2】:

您是否在代码中包含了诸如 firebug.js 之类的外部文件或类似的东西。我认为它不应该默认做任何事情,它必须使用 sm 代码来检查范围内是否存在某个对象或其他东西。

希望您没有使用某些示例代码,这就是您遇到此问题的原因。

还要确保您拥有正确版本的 OL,而不是修补版本或测试版。 请更新我们。

我找到的一个链接:http://osgeo-org.1803224.n2.nabble.com/Firebug-Error-Invalid-Object-Initializer-td2866563.html

顺便说一句,这是 openlayers 的立场: 添加 OpenLayers.Console 命名空间和一些允许记录错误消息的方法 - 当页面中包含 firebug.js 时,应用程序以“调试”模式运行 - Firebug 扩展或 Firebug Lite 处理 OpenLayers.Console 调用取决于可用性

【讨论】:

  • 你没有回答我的问题。我在问是否有办法完全阻止 OL 触摸 console.log 或尝试加载 firebug。无论如何,我继续修改了 OL 源,它工作正常。顺便说一句,我使用的是稳定版本。
【解决方案3】:

我最终只是注释掉了添加 iframe 的行。我在 OpenLayers 之前加载了一个脚本,它创建了 window.console 的备份。

window.console2 = {};
for(key in window.console)
    window.console2[key] = window.console[key];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多