JQuery - 获取js文件中的实际行号

时间:2012-05-11 12:40:22

标签: jquery

我使用下面的代码来处理ajax调用错误。我想添加'$('body').append(...'行的行号以便能够回显它。按行号,我的意思是我的.js文件中的行号。想知道是否可以获得实际的行号?提前感谢您的回复。干杯。马克

$.ajax({
    type: "POST",
    url: "myfile.php",
    error: function(jqXHR, textStatus, errorThrown) {

        $('body').append('aj.ERROR! [' + jqXHR.status + ' : ' + errorThrown + ']');
    },
    success: function(data) {
        // somecode
    }
});​

1 个答案:

答案 0 :(得分:6)

我知道公开当前行号的唯一方法是使用window.onerror事件处理程序,它具有以下签名:

window.onerror = function(msg, url, line) { ... }

理论 你可以在代码中触发一个真正的错误(throw?),然后在错误处理程序中进行追加,例如:

window.onerror = function(msg, url, line) {
    $('body').append(msg + ' at ' + url + ':' + line);
};

$.ajax({
    type: "POST",
    url: "myfile.php",
    error: function(jqXHR, textStatus, errorThrown) {
        throw 'aj.ERROR! [' + jqXHR.status + ' : ' + errorThrown + ']';
    },
    success: function(data) {
        // somecode
    }
});​

编辑它有效(在Chrome中,至少......) - http://jsfiddle.net/alnitak/gLzY2/