2017-01-10 20 views

回答

0

嘗試新的功能分配給使用console.trace()一個window.alert性能和打印堆棧跟蹤:

window.alert = (function(window) { 
    var oldAlert = window.alert; 
    return function alert(message) { 
    console.trace(); 
    oldAlert(message); 
    }; 
})(window); 

堆棧跟蹤比呼叫者的名字更好,因爲它工作在嚴格模式下,它提供了更多的信息。但是,此代碼段將無法正常工作,如果alertsetTimeoutsetInterval或作爲事件處理函數調用:

// In this case stack trace consists of single alert call. 
setTimeout(alert, 0, "foo"); 

所以,如果這個解決方案不幫你,你可能需要更換其他功能(setTimeoutsetIntervaladdEventListener )也以類似的方式。欲瞭解更多信息,你可以看看Long stacktraces project

2

你可以你的某些功能結合到window.alert;

alert = function myCustomAlert(){ console.log("caller", myCustomAlert.caller); } 

您可以在開發者工具控制檯把這個和檢查調用者。

alert = function myCustomAlert(){ console.log("caller", arguments.callee.caller.name); } 

與此唯一的問題是,它必須在非嚴格的範圍運行:

你可以像其他技術做到這一點。

1

是去你在哪裏得到這個警報和開放的開發工具的頁面,進入裏面的「元素」選項卡,然後進行搜索的文本「警報」

(CTRL + F在窗口或CMD + F在Mac中)

。你應該找到的代碼在激發警報實際的代碼應該是這樣的window.alert("message which you are seeing on screen");

或替代方法線路頁面上點擊右鍵並做

「查看頁面源代碼」

並搜索相同的文本「警報」,你應該得到的代碼行。

相關問題