打开网页后立即获取网页的活动javascript函数

To get the active javascript functions of a webpage as soon as we open

本文关键字:网页 活动 javascript 获取 函数      更新时间:2023-09-26

我想打印从网页对web浏览器进行的函数调用,即javascript的活动函数。但我想我的方法是不正确的,因为在下面代码的帮助下,我得到了所有的javascript函数。

function tracecalls(par) {
    var f, fname;
    for (fname in window) {
        f = window[fname];
        if (typeof fun === 'function') {
            window[fname] = (function(fname, fun) {
                var arg = arguments;
                return function() {
                    return par.apply(this, arg);
                    f.apply(this, arg);
                }
            })(fname, f);
        }
    }
}
tracecalls(function(fname, f) {
    console.log("Function Name : " + fname);
});

在阅读了一些文章后,我了解到,我们可以获得活动函数,即在Ecmascript 6 Proxy的帮助下动态调用的函数的名称。由于我对此完全陌生,任何人都可以指导我如何处理代理。。

您的方法实际上是正确的,只是在实现中犯了一些错误。

不要尝试在这里使用代理,这要复杂得多,而且无论如何都不能将全局对象换成其自身的代理版本。

function tracecalls(par) {
    for (var name in window) {
        if (typeof window[name] === 'function') {
//                 ^^^^^^^^^^^^ there is no variable `fun` anywhere
            window[name] = (function(fname, f) {
//                                          ^ don't use `fun` here
//              you don't need `var arg = arguments;` here
                return function() {
                    par(fname);
//                  ^   ^^^^^ you don't need apply, just pass the name
//                  ^ no return here
                    return f.apply(this, arguments);
//                  ^^^^^^ yield result  ^^^^^^^^^ pass through current arguments, not `arg`
                }
            }(name, window[name]));
        }
    }
}
tracecalls(function(fname) {
    console.log("Function Name : " + fname);
});