Tak więc teraz mamy pewien ogólny kod do zgłaszania błędów z naszego kodu lub kodu strony trzeciej. Nasz projekt to projekt JQM/Phonegap na iOS. Co się dzieje, prawie zawsze otrzymujemy ten sam bezużyteczny błąd ... TypeError: 'undefined' nie jest funkcją ... bez numeru wiersza lub innych pomocnych informacji. Czy istnieje sposób, w jaki mogę zmienić kod, aby uzyskać CZYM jest niezdefiniowany lub GDZIE on jest?Poprawianie naszego zgłaszania błędów javascript
window.onerror = function myErrorHandler(errorMsg, url, lineNumber) {
//Handle errors not in a jquery event handler
//DebugMessage(errorMSg + " "+ url + " " + lineNumber);
var ex = new Error(errorMsg, url, lineNumber);
HandleError(ex, "window.onerror");
//HandleError sends the error object to
//a webservice to log the error.
return true;
};
Pomocne mogą być także wszelkie wskazówki dotyczące debugowania błędów javascript.
Mam ten sam problem. Wygląda jak błąd w UIWebView, ponieważ kiedy uruchomię ten sam kod na Safari/chrome, zdefiniowany jest lineNumber. Powinniśmy zgłosić błąd firmie Apple: https://bugreport.apple.com - im więcej będziemy wypełniać zgłoszenie tego błędu, tym bardziej stanie się on ważny (nie można głosować na błąd, więc zespół Apple traktuje priorytetowo raport o błędach numer duplikatu). – Samuel
Nie jestem pewien, czy to działa dla urządzeń przenośnych, ale użyłem tego w przeszłości: https://github.com/posabsolute/jQuery-Error-Handler-Plugin również włączając tryb debugowania w Mobile Safari i używając console.log ("error wiadomość'); działa również –
Patrząc na kod wtyczki, robi to samo, co powyższy kod (zastępuje onerror kodem e-maili/loguje błąd). Więc nadal otrzymam TypeError: "undefined" nie jest funkcją, linia: undefined. Wypełnię raport o błędzie, a ja będę nadal szukał sposobu na obejście problemu. – Twomz