所以我有了一个想法,但需要一些帮助才能让它真正起作用。 或者也许这是不可能和愚蠢的,在这种情况下让我知道原因。
这个想法是让程序员能够做到这一点:
lookfor('alert');
运行此行代码后,每当调用alert函数时,控制台都会记录一个回溯。在大型(组)项目中也是这样,因此更容易找到触发javascript代码的位置。
所以我想问题是在不知道其内容的情况下修改函数,而不是完全覆盖它们。我觉得这对于用户定义的函数是可能的,而不是内置在alert()之类的函数中。我对用户定义函数的第一个想法是这样的:
function lookfor(func_name)
{
var override = window[func_name].toString();
override = override.replace(/(.*?){(.*?)}/, 'printBacktrace(); $2');
window[func_name] = new Function(override);
}
虽然它可能只适用于全球功能。有什么想法吗?