2014-08-28 106 views
1

我知道它容易被攔截在JS的功能,除其他方式:攔截的console.log但保持堆棧

console.log = (function() { 
var log = console.log; 

return function() { 
    alert(arguments); 
    log.apply(console, arguments); 
})(); 

,但有沒有辦法來包裝的console.log,這樣當用戶調用

console.log("hi")//in random.js 

在控制檯中它顯示的是random.js的來源,而不是攔截的位置?

回答

0

使用try/catch而不是返回一個函數:

console.log = Function("a", "try { console.info(a); } catch(e){return e}"); 
+0

這只是似乎產生了鍍鉻的堆棧上的vmxxx.js文件。不是說它來自x.js – maxfridbe 2015-01-05 15:50:01