1
我想解決一個頁面有很多的JS,包括廣告,還有一些是導致window.console被取代,它抑制了我想看到的典型的控制檯日誌記錄輸出。有沒有辦法確定哪個JS被覆蓋window.console?
有沒有一種方法來確定哪個JS覆蓋window.console?也許只有在typeof(window.console)被修改時纔會觸發一個斷點?
我想解決一個頁面有很多的JS,包括廣告,還有一些是導致window.console被取代,它抑制了我想看到的典型的控制檯日誌記錄輸出。有沒有辦法確定哪個JS被覆蓋window.console?
有沒有一種方法來確定哪個JS覆蓋window.console?也許只有在typeof(window.console)被修改時纔會觸發一個斷點?
好問題!我想我可以幫忙。 使用Object.defineProperty https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty 來重新生成.log屬性。
水木清華這樣的:
Object.defineProperty(console, "log", {
set: function() { throw 'Hoh!' }
});
console.log = 'abc';
Pottentially ES6的[object.observe(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/observe)可以幫助?編輯:剛剛意識到它的棄用,但仍然可用它可以做調試。 – ste2425
您可以使用define屬性來添加setter描述符。 – Vitalii