麻烦打印行号和`alert`ing长字符串变量来调试JS脚本块

fak*_*ted 7 javascript

我需要在我的php.html页面中加入一些JS,并且我很难尝试调试.我一直在谷歌搜索,但似乎无法找到如何打印行号,如__LINE__在PHP中.有没有办法轻松地实现这个看似有用的壮举?

我遇到的另一个问题是,我正在尝试调试一个script行为不太明显的块,而我需echo要这样做alert一个非常长的字符串var.不幸的是,警报框会自行关闭,大概是因为var字符串有多长.似乎没有任何方法来定义参数,例如alert盒子的高度,宽度等,所以我尝试使用这个hack:

function alertDebug(linesToDisable)
      {
        var newLinesToDisable = new String();
        for (var n = 0; n < linesToDisable.length; n++)
        {
          if (n % 100 == 0)
            newLinesToDisable += "\n";
          newLinesToDisable += aString[n];
        }
        alert( newLinesToDisable );
      }
      alertDebug( linesToDisable );
Run Code Online (Sandbox Code Playgroud)

alert完全无法解雇.任何拥有L337 JS技能的人都能帮忙吗?

kan*_*ano 1

关于调试/长日志:JavaScriptconsole对象有很多有用的调试方法。您可以在MDN上找到它们。最常见的一种是console.log(newLinesToDisable).

关于行号:通常浏览器还会公开引发错误的行号(堆栈跟踪),但如果您想专门记录行号,您可以尝试

var line = new Error().lineNumber
Run Code Online (Sandbox Code Playgroud)

如果这在您使用的任何环境中都不起作用,您可以尝试:

var stack = new Error().stack
Run Code Online (Sandbox Code Playgroud)

但接下来你必须挖掘整个堆栈跟踪。