Cuando comencé a trabajar con OpenLayers, console.log dejó de funcionar y seguí recibiendo este error en el terminal de Chrome.

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

Al principio no me di cuenta de que era OL, así que desinstalé el complemento firebug lite. Luego revisé la fuente OL y descubrí dónde está tratando de inyectar firebug.

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

¿Hay alguna manera de evitar que OL haga eso además de modificar la fuente? Además, está sobrescribiendo window.console

4
Ilia Choly 16 ago. 2011 a las 19:24

3 respuestas

La mejor respuesta

Me encontré con el mismo problema. Lo arreglé por el momento agregando:

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

Antes de cargar el script de capa abierta.

La razón: console.log solía funcionar en la versión anterior de Openlayer, pero no por ahora, así que verifiqué el código fuente encontrado:

If (! window.console ||! console.firebug) {...

Lo que significa que supongo que si no hay una consola FIREBUG, la consola se limpiará y se sobrescribirá.

Creo que debería ser un error, así que simplemente no profundicé más en esto, e intenté solucionarlo lo antes posible, esperando que el chico de Openlayer solucionara el error.

Espero que funcione para usted, si no, hágamelo saber.

4
lucian 25 ago. 2011 a las 08:43

Terminé comentando la línea que agrega el iframe. Y cargo un script antes de OpenLayers que crea una copia de seguridad de window.console.

window.console2 = {};
for(key in window.console)
    window.console2[key] = window.console[key];
0
Ilia Choly 21 ago. 2011 a las 07:27

¿está incluyendo un archivo externo como firebug.js o algo así en el código? No creo que deba hacer nada por defualt y debe tener un código hv sm que verifique si existen ciertos objetos en el alcance o algo así.

Espero que no estés usando algún código de ejemplo y es por eso que estás enfrentando este problema.

También asegúrese de tener la versión correcta de OLD y no una versión parcheada o una versión beta. por favor actualícenos.

Un enlace que encontré: http: / /osgeo-org.1803224.n2.nabble.com/Firebug-Error-Invalid-Object-Initializer-td2866563.html

Por cierto, esto es lo que tiene Openlayers: agregue el espacio de nombres OpenLayers.Console y una serie de métodos que permiten el registro de mensajes de error: cuando firebug.js se incluye en una página, la aplicación se ejecuta en modo "depuración": la extensión Firebug o Firebug Lite maneja llamadas OpenLayers.Console dependiendo de la disponibilidad

2
Baz1nga 16 ago. 2011 a las 15:35