具有行和列偏移的Javascript的Eval字符串?

前端之家收集整理的这篇文章主要介绍了具有行和列偏移的Javascript的Eval字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有人知道一种方法来评估字符串,以便如果它(或它定义的函数)产生错误,堆栈跟踪中显示的行号和列号将偏移预先指定的数量
或者,假设我想将一个长源字符串分解为块并单独评估它们,但仍然得到堆栈跟踪,看起来好像整个字符串都是一次性评估的.有没有办法实现这个效果,除了使用空行和列? (我需要一个基于浏览器的解决方案,最好是跨浏览器,但我可以满足至少一个主流浏览器的功能.)

解决方法

我认为这是不可能的,因为假设工作的底层机制实际上是 deprecated.出于安全原因,浏览器不再将错误对象传递给Javascript.

但是,由于您正在使用编译为Javascript的自定义编程语言,因此您知道生成的脚本的结构是什么.您还可以在生成的Javascript中引入语句计数器,这样您就可以随时了解最后执行的操作.就像是:

function(1); function(2);
function(3);

可以翻译为:

var __column=0;
var __line=0;
function(1); __column+=12;
function(2); /*__column+=12;*/ __line++; __column=0;
function(3); /*__column+=12;*/ __line++; __column=0;

其中12是“function(n);”.length.当然,生成代码很难看,但你可以用调试标志或其他东西来启用这种行为.

猜你在找的JavaScript相关文章