我使用window.onerror
方法来利用全局异常。我试图通过在IE中使用arguments.callee.caller
来获取函数名称。但是在chrome和所有其他浏览器中它都是null。我google了很多。但我没有得到任何结果。如何在chrome / mozilla中获取调用者的值。请建议我。我给出了下面给出的示例代码。
window.onerror = function (msg, url, line, col, error) {
debugger;
// Note that col & error are new to the HTML 5 spec and may not be
// supported in every browser. It worked for me in Chrome.
var extra = !col ? '' : '\ncolumn: ' + col;
extra += !error ? '' : '\nerror: ' + error;
LineNumber = line;
ColumnNumber = col;
ErrorDescription = error.stack;
//console.log(ErrorDescription);
ErrorString = msg;
var now = new Date();
var datetime = now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate();
ErrorDateTime = datetime + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
// You can view the information in an alert to see things working like this:
//alert("Error: " + msg + "\nurl: " + url + "\nline: " + line + extra);
var FilePath = window.location.pathname;
PageName = FilePath.split("/").pop();
var ExceptionFunctionName = window.onerror.caller;
if (ExceptionFunctionName != undefined && ExceptionFunctionName != null) {
ExceptionFunctionName = ExceptionFunctionName.substr('function '.length);
MethodName = ExceptionFunctionName.substr(0, ExceptionFunctionName.indexOf('{'));
}
capture();
var suppressErrorAlert = true;
// If you return true, then error alerts (like in older versions of
// Internet Explorer) will be suppressed.
//return suppressErrorAlert;
}
我的呼叫功能如下。
function ExceptionFunction() {
var Test = testvar / 5;
}
答案 0 :(得分:0)
而不是window.onerror.caller
您需要使用arguments.callee.caller
BR, 萨尔