2010-04-26 4 views
6

Estoy escribiendo un juego y tengo una consola para que los desarrolladores interactúen con los métodos de JavaScript en el juego. Tengo un problema sin embargo; No puedo encontrar la forma de eliminar los errores de JavaScript en la consola. ¿Hay alguna forma de escribir errores en un elemento div o HTML?¿Es posible volcar los errores de JavaScript en un div en HTML?

+2

'puedo averiguar how' ... ¿Quiere decir que no puedes? – SLaks

+0

Creo que realmente quería decir 'puedo', dice que ya sabe cómo soltar mensajes en la consola –

+0

Quiero decir, no puedo disculparme chicos –

Respuesta

6

Parece que ya tiene la capacidad de ejecutar JS y solo necesita capturar el error de salida? Si es así, usted debería ser capaz de hacerlo envolviendo su código de ejecución en un bloque try ... catch:

var result; 

try { 
    result = eval($("#console-input").val()); 
} catch (ex) { 
    if (ex !== null && typeof ex !== "undefined") { 
     if (ex.message) ex = ex.message; 
    } else { 
     ex = "An unknown error occurred."; 
    } 

    result = ex; 
} 

$("#console-output").append($("<p/>").text(result)); 
$("#console-input").val(""); 

Esto agregará el resultado del código a un div de salida si se produce ningún error. Si se produce un error , en su lugar mostrará el mensaje de error (si existe) o "Se ha producido un error desconocido".

+0

+1 ¡mejor detalle que mi respuesta! –

+0

increíble muchas gracias Ben –

0

Los errores de JavaScript definidos a medida se envían con el comando throw. Si desea ingresar esos errores en un div, entonces use el método innerHTML en lugar de throw e inmediatamente regrese de la función de ejecución.

0
konsole = document.createElement('ul'); 
konsole.id = 'console'; 
document.getElementsByTagName('body')[0].appendChild(konsole); 

    function log(konsole, message, level) 
    { 
     if (undefined === level) level = 0; 
     messageElem = document.createElement('li'); 
     messageElem.className = 'level-' + level; 
     messageElem.innerHTML = message; 
     konsole.appendChild(messageElem); 
    }; 


document.getElementById('console') 

log(document.getElementById('console'), ':)'); 

Entonces es sólo acerca de CSS ...

Cuestiones relacionadas