Comunidad de diseño web y desarrollo en internet online

Verificar si un objeto existe.

Citar            
MensajeEscrito el 28 Ago 2007 05:40 pm
Hola, tengo una especie de consola en JS que uso para depurar mis aplicaciones y no volverme loco con los alerts. Es una especie de emulador de FireBug, basicamente me deja escribir codigo en JS y ejecutarlo, ver errores, y navegar por el DOM.

Hasta ahi todo bien, pero tengo un problema. a veces no voy a cargar la consola, como cuando el sistema ya este en productivo por ejemplo... asi que he puesto en mis scripts algo asi como:

Código :

if(Debug){Debug.log('>> Solicitando : '+file);}


por cada linea que quiero depurar. Debug es el objeto que contiene todas las funciones de mi consola. Y si no existe no quiero que me de error. El pedo esta en que si no cargo la consola (Archivo console.js) Me dan errores "Debug is not defined". Por que si tengo if(Debug)?

Segun yo funcionaba asi, cual es el problema?

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 28 Ago 2007 05:51 pm
Sí, como bien dices, debería funcionar, algo raro debes tener por ahí. En IE por ejemplo cuando invocas un objeto que no existe y lo comentas de forma sencilla //, da errores de ejecución, bastante feo eso.

Aunque el problema de fondo, radica en como lo haces.

Lo ideal sería lo siguiente:

Código :

//Controlamos con una variable global, si es producción o no.
var debugging = false;

function saveLog(message)
{
  if( debugging )
  { 
   //verificamos si ya se cargo el js de Debug, si no lo cargamos por DOM. Después solo lo usamos
    Debug.log(message);
  }
}

la forma de invocar el log
saveLog("algo que paso");


Este fragmento de código ponlo en un archivo general de JS(que siempre se incluya en el sitio). Así no dará problemas, y Debug.js solamente lo incluiras y usaras cuando se este en desarrollo.


saludos :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Ago 2007 06:08 pm
ey dano! Sip, estaba pensando en eso, el problema es que mi clase Debug es bastante compleja y tiene mas funciones que simplemente Debug.log:

Código :

log, info, warn, error, time, timeEnd, breakpoint, parse, parseKey, domJump, group, groupEnd.


que me aconsejas hacer? creo el objeto Debug en un JS que se incluya siempre con todas las funciones que usare pero que llamen al Verificador?.

No existe en JS una forma de hacer como una funcion default dentro de un objeto xDD?

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 28 Ago 2007 06:13 pm
Por cierto, en IE tengo un problema rarisimo cuando imprimo el div para mostrar la consola. Carga la pagina hasta la mitad y luego me sale un error que dice Internet explorer no pudo abrir la pagina de busqueda, operacion anulada. y luego se mueve a la pagina de error de no se puede mostrar la pagina.

Este es el codigo:

Código :

start: function(){
   DebugDiv=document.createElement("div");
   DebugDiv.setAttribute('id', 'console');
   DebugDiv.innerHTML = '<div id="ioConsoleMenu">ioFramework - <span>LIMPIAR</span><span> | </span><span>MIN</span><span style="display: none;">DOM</span><span> | </span><span onclick="Debug.hide();">CERRAR</span></div><div id="ioConsoleContent"></div><div id="ioConsoleInput">&gt;&gt;&gt; <input type="text" id="consoleInput" onKeyDown="Debug.parseKey(event.keyCode);"></div>';
   document.body.appendChild(DebugDiv);


si comento la linea de appendChild no me da errores.

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.