0
我想检测来电者的功能和来自哪里。如何检测来电者的功能和来电的位置
例如:
假设我们在HTML内容上有以下内容:
<script src="/somefunc.js"></script>
而且下面的函数位于somefunc.js
exampleFunction = function(){
var f = document.getElementById("hello")
}
正如你看到exampleFunction被调用的getElementById()函数。为了检测这个调用,我用下面的代码覆盖了getElemenyById()。
document._oldGetElementById = document.getElementById;
document.getElementById = function(elemIdOrName) {
var result = document._oldGetElementById(elemIdOrName);
if (! result) {
var elems = document.getElementsByName(elemIdOrName);
if (elems && elems.length > 0) {
result = elems[0];
}
}
console.log("someone called me! Caller function = "+arguments.callee.caller);
return result;
};
但我无法设法获取哪些函数调用者的信息,它是什么位置?我的意思是我想获得如下输出的信息。
Caller = exampleFunction
Caller location = site.com/somefunc.js
任何想法?
exampleFunction = function(){ var f = document.getElementById(“hello”) }是匿名的。尝试添加函数名称来获取函数名称,如“exampleFunction = function exFunction(){ var f = document.getElementById(”hello“) }” – pmverma 2014-12-09 11:53:19
pmverma - 这听起来像一个答案。对于OP - 你得到了什么输出?只是未定义的或别的什么? – 2014-12-09 11:55:52
@DannyStaple我没有运行这个。但是,如果没有给出这个名字,你就不能得到实际的函数名称。如Mehmet Ince所做的那样。我错了吗? – pmverma 2014-12-09 11:58:58