Jak wysyłać komunikaty konsoli i błędy, aby ostrzec?
Chciałbym przekazać błędy do alertu, aby ostrzec użytkownika, że popełnił błąd w swoim kodzie, nawet jeśli nie ma otwartej konsoli.
var doc=(frame.contentWindow.document || obj.contentDocument|| obj.contentWindow);
var head = doc.getElementsByTagName('head')[0];
var scriptElement = doc.createElement('script');
scriptElement.setAttribute('type', 'text/javascript');
scriptElement.text = scripts;
try{
head.appendChild(scriptElement);
}
catch(e){ alert("error:"+e.message +" linenumber:"+e.lineNumber);}
AppendChild zgłasza błąd, gdy skrypty zawierają błąd. Idzie jednak prosto do konsoli i chcę, aby wyświetlał się w alercie, ponieważ jest przeznaczony dla dzieci i mogą nie sprawdzać konsoli. Blok try catch nie przechwytuje błędu. Próbowałem go z eval (skrypty).
try{
eval(scripts);} catch(e){ alert("error:"+e.message +" linenumber:"+e.lineNumber);}
to działa, ale oznacza, że kod jest wykonywany dwukrotnie, co w niektórych przypadkach jest bardzo niewygodne.
Próbowałem łatać konsolę na monkey.error:
console.log=function(){alert("taking over the log");}
console.error=function(){alert("taking over the log");}
ale działa to tylko wtedy, gdy dosłownie używam konsoli.error. Nie, gdy zostanie zgłoszony prawdziwy błąd. Jaka funkcja wysyła błąd do konsoli w przypadku prawdziwego błędu, jeśli nie jest to konsola. i czy mogę uzyskać do niego dostęp i zmienić go? Jakieś pomysły? Pomoc byłaby naprawdę doceniana. Dzięki Jenita