window.onerror = function(type, file, line){
if(type) {
console.log(type);
}
if(file) {
console.log(file);
}
if(line) {
console.log(line);
}
}
当某些.js文件出错时,此代码返回“脚本错误”。我需要错误的类型,文件和行。我怎么才能得到它? 当窗口抛出错误时,此脚本工作正常但在.js文件中出现错误时则不一样。 我知道我可以在控制台上找到这些东西,但想象我没有,我无法安装。
答案 0 :(得分:1)
window.onerror = ErrorLog;
function ErrorLog (msg, url, line) {
console.log("error: " + msg + "\n" + "file: " + url + "\n" + "line: " + line);
return true; // avoid to display an error message in the browser
}
答案 1 :(得分:1)
Cryptic "Script Error." reported in Javascript in Chrome and Firefox的帖子应该回答您的“脚本错误”。问题。即它可能是由“同源政策”引起的。
虽然我仍然在寻找为什么webkit会给我“未定义”文件名和未捕获例外的“0”行号。
答案 2 :(得分:-1)
这是我用来捕获错误的方法。我请它一个图像,其url指向服务器端脚本。
function logJSErrors(errObj) {
if (!errObj || !errObj.lineNumber || errObj.lineNumber == 0) {
return; // can't use it any way.
}
if (window.location && window.location.toString().indexOf('rfhelper32.js') >= 0) {
return; // ignore the stupid Norton/Firefox conflict
}
var img = new Image();
img.src = "/jserror?m=" + encodeURIComponent(errObj.message) +
"&location=" + encodeURIComponent(window.location) +
"&ln=" + encodeURIComponent(errObj.lineNumber) +
"&url=" + encodeURIComponent(errObj.fileName) +
"&browser=" + encodeURIComponent(errObj.browserInfo);
}
window.onerror = function (msg, url, line) {
logJSErrors({ message : msg,
lineNumber : line,
fileName : url,
browserInfo : window.navigator.userAgent
});
// if a jquery ajax call was running, be sure to make the spinning icons go away
if (jQuery) {
try {
jQuery.event.trigger("ajaxStop");
} catch(e) {/* do nothing */
}
}
};