4

当我开始使用 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

4

3 回答 3

4

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

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

在加载 openlayer 脚本之前。

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

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

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

我觉得应该是bug,所以我没有深入这个,并尝试尽快修复它,等待Openlayer家伙修复的bug。

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

于 2011-08-25T08:43:27.310 回答
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 调用

于 2011-08-16T15:28:40.727 回答
0

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

window.console2 = {};
for(key in window.console)
    window.console2[key] = window.console[key];
于 2011-08-21T07:27:13.973 回答