逃离javascript本地包装



我的一个客户遇到了一个奇怪的问题,在客户网站上,一些在我的代码覆盖"window.console"之前运行的代码,所以我无法使用它。我试图创建一个不可见的iframe并使用它的contentWindow,但不知怎的,它也被钩住了。所以2个问题:

  1. 我可以从它的构造函数创建一个新窗口吗?

  2. 我可以扩展"Window.prototype.constructor"吗?这样当我创建一个新的iframe时,我可以保护我想要的属性。

否。如果客户端网站在您之前运行了覆盖window.console的代码,您就无法规避这一点(创建iframe时似乎也会发生同样的事情(,并且无法恢复控制台功能。

根据你的需要,可能还有其他方法来实现你的需求。在浏览器中实现window.console之前,开发人员用HTML和JS制作了自己的控制台,将消息记录到HTML元素中。

最新更新