0
这可能吗?我有一个处理程序,不断追加字符串信息到一个字符串每次错误命中,然后在窗口卸载我想通过AJAX发送这个信息到服务器,window.onerror&捕捉多个错误
但一旦错误已被处理,似乎无法处理另一个,这是因为他们是致命的错误?或者我错过了什么?
ErrorManager: (function() {
function Init(message) {
InitErrorHandler();
InitAjaxHandler();
}
function InitErrorHandler() {
Data.ErrorHandlerText = "";
Data.ErrorHandlerCount = 0;
window.onerror = function(errorMessage, url, line) {
Data.ErrorHandlerText += ("Error: "+(Data.ErrorHandlerCount+1)+" \n\n");
//Get error specific info
Data.ErrorHandlerText += escape(errorMessage) + "\n";
Data.ErrorHandlerText += escape(url) + "\n";
Data.ErrorHandlerText += escape(line) + "\n";
Data.ErrorHandlerCount++;
return true;
}
}
function InitAjaxHandler() {
window.onbeforeunload = function() { //when browser closed
Data.ErrorHandlerCount > 0 && SendErrorsToAjax();
}
}
function SendErrorsToAjax() {
PrepareErrorsForAjax();
//$.getJSON(Interface.Utility.PrefixURL('/emailjserrors/'+Data.ErrorHandlerText), AjaxCallback);
}
function AjaxCallback(response) {
}
function PrepareErrorsForAjax() {
var preText = "A user has encountered a few errors: \n\n";
//Get session info
var userAgent, activePageID, accountNO, consumerNO;
userAgent = escape(navigator.userAgent);
preText += "User agent: "+userAgent+" \n";
if($.mobile.activePage != null) {
activePageID = $.mobile.activePage.attr('id');
preText += "Page ID: "+activePageID+" \n";
}
//Get info that may or may not be set
if(Data.authJSON != null && Data.authJSON.consumer != null) {
preText += "Account Number: " +Data.authJSON.consumer.accountNo+" \n";
preText += "Consumer Number: "+ Data.authJSON.consumer.consumerNO+" \n";
}
preText += "\n The following errors were encountered:\n\n";
Data.ErrorHandlerText = preText + Data.ErrorHandlerText;
}
return {
Init: Init,
SendErrorsToAjax: SendErrorsToAjax
}
})(),