用户登录
用户注册

分享至

覆盖后访问window.console

  • 作者: 隔壁老王32549884
  • 来源: 51数据库
  • 2022-12-20

问题描述

console.log 被覆盖后是否可以通过某种方式访问??它?

Is it possible to somehow access to console.log after it gets overwritten?

window.console = { log: function (msg) { alert(msg); }, /* etc... */ };

能否恢复原来的 console.log 功能?

Would be it be possible to regain the original console.log functionality?

推荐答案

您可以在覆盖之前备份控制台.

You can back up the console before overwriting it.

var oldConsole = window.console;
window.console = { log:function(msg){alert(msg)} //...};

然后你可以使用 oldConsole 变量.

Then you can use the oldConsole variable.

oldConsole.log('test');

如果无法备份,可以创建 iFrame,然后从那里窃取控制台(这可能不适用于所有浏览器):

If you can't back it up, you can create an iFrame, and then steal the console from there (this may not work in all browsers):

var i = document.createElement('iframe');
i.style.display = 'none';
document.body.appendChild(i);
window.console = i.contentWindow.console;

演示:http://jsfiddle.net/jcG7E/2

软件
前端设计
程序设计
Java相关