2010-04-26 13 views
6

Oyun yazıyorum ve geliştiricilerin oyundaki JavaScript yöntemleriyle etkileşimde bulunmaları için bir konsolum var. Yine de bir problemim var; JavaScript hatalarını konsola nasıl bırakacağımı anlayamıyorum. Bir div veya HTML öğesine hata yazmanın yolu var mı?JavaScript hatalarını HTML'de bir div'e dökmek mümkün mü?

+2

'Ben how' ... yapamazsın demek istiyorsunuz anlamaya? – SLaks

+0

Ben gerçekten 'can' anlamına geldiğini düşünüyor, o zaten konsoluna mesaj bırakmayı biliyor olduğunu söylüyor –

+0

Üzgünüm arkadaşlar –

cevap

6

JS çalışmasını yürütme yeteneğiniz var gibi görünüyor ve sadece hata çıktısı almanız gerekiyor mu? Eğer öyleyse, bir try ... catch blokta da yürütme kodunu sararak bunu mümkün olmalıdır: hata oluşursa

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(""); 

Bu

bir çıkış div kod sonucunu katacak. Bir hatası yaparsa, bunun yerine hata iletisini (varsa) veya "Bilinmeyen bir hata oluştu."

+0

+1 cevabımdan daha iyi detay! –

+0

harika teşekkür ederim çok Ben –

0

Özel tanımlı JavaScript hataları, throw komutuyla çıkar. Bu hataları bir div olarak girmek istiyorsanız, atmak yerine innerHTML yöntemini kullanın ve hemen yürütme işlevinden döndürü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'), ':)'); 

O zaman sadece CSS ilgili ...

İlgili konular