当我开始使用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
答案 0 :(得分:4)
我遇到了同样的问题。 我通过添加:
来修复它<script type="text/javascript">
console.firebug=true;//fix the openlayer problem
</script>
在加载openlayer脚本之前。
原因: console.log曾经在以前版本的Openlayer中工作,但现在还没有,所以我检查了发现的源代码:
if(!window.console ||!console.firebug){...
这意味着我猜如果没有FIREBUG控制台,控制台将被清理并覆盖。
我认为它应该是一个bug,所以我只是没有深入研究,并尝试尽快修复它,等待Openlayer家伙修复的错误。
希望它对你有用,如果没有,请告诉我。
答案 1 :(得分:2)
你是否在代码中包含了一个像firebug.js这样的外部文件或类似的东西..我不认为它应该通过defualt做任何事情,它必须hv 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调用取决于可用性
答案 2 :(得分:0)
我最后只是评论了添加iframe的行。我在OpenLayers之前加载一个脚本,它创建了window.console的备份。
window.console2 = {};
for(key in window.console)
window.console2[key] = window.console[key];