購物車頁面包含錯誤日誌:如何從瀏覽器修復javavascript誤差,提高錯誤記錄在瀏覽器中呈現
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
$.post('/Home/Error',
{
"errorMsg": errorMsg,
"url": url,
"lineNumber": lineNumber,
"column": column,
"errorobj": JSON.stringify(errorObj)
});
其錯誤記錄到單MVC4應用服務器:
public ActionResult Error(string errorMsg, string url,
string lineNumber, string column, string errorobj)
{
Logifail.Write(
string.Format(
"Error {0}\n" +
"Url {1}\n" +
"Line {2}\n" +
"Column {3}\n" +
"Obj {4}\n", errorMsg, url, lineNumber, column, errorobj
);
return new ContentResult();
}
服務器日誌包含大量消息
Error Object doesn't support this property or method
Url http://example.com/Store/Details?product=H62810-00
Line 132
Column
Obj
第132行包含 此行是方法,它在車更新價格:
var updatePage = function() {
var price = Number($('#Price').text().replace(',', '.').trim()), // line 132
quantity = Number($('#spinner').val().replace(',', '.'));
var total_eur = price * quantity;
$('span#total_eur').text(total_eur.toFixed(2));
};
它看起來像什麼是錯的,有時在這條線。 如何解決這個錯誤?我嘗試了可能的用戶交互在這個頁面調用這個方法,但是錯誤不會發生。此錯誤僅在某些用戶中出現。
updatePage()可以更改,以避免錯誤發生? 如何在瀏覽器中記錄關於javascript錯誤的更多信息:javascript堆棧跟蹤,變量名稱以及來自瀏覽器的當前和其他數據,這些數據可以提供有關錯誤的更多信息? 列和errorobj總是空的。爲什麼這些不會傳遞給錯誤處理程序?
jquery,jquery-ui與一些插件使用。下列文件被加載到頁面中的精縮形式:
"~/Scripts/jquery/jquery-1.8.3.js",
"~/Scripts/jquery-ui-1.9.2.custom.js",
"~/Scripts/menubar.js",
"~/Scripts/jBreadCrumb/js/jquery.jBreadCrumb.1.1.js",
"~/Scripts/Pikachoose/jquery.fancybox.js",
"~/Scripts/jquery.dotdotdot-1.5.6-packed.js",
"~/Scripts/responsiveslides.js",
"~/Scripts/jcarousel-0.2/lib/jquery.jcarousel.js",
謝謝您的支持選項。如何提高錯誤日誌記錄:日誌調用堆棧和JavaScript源代碼行發生異常? – Andrus 2014-11-08 21:19:20
看着你無法從你的日誌中獲得更多的信息。 onerror沒有收到一個錯誤對象,因此你不能得到一個堆棧跟蹤,這裏是一個很好的文章討論選項http://blog.meldium.com/home/2013/9/30/so-youre-thinking -of-跟蹤您的JS-錯誤 – Quince 2014-11-10 09:18:27