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