如何找到网页中的哪个脚本实际上覆盖window.open()到window.open = true

时间:2018-06-01 12:09:17

标签: javascript window.open

我有一个javascript函数,它实际上使用window.open()方法在iframe中加载页面。但是我确定通过另一个脚本window.open被覆盖了。这就是为什么我收到错误

Uncaught TypeError: window.open is not a function

有没有办法找出哪个脚本实际上没有找到所有脚本。因为页面有很多脚本。

1 个答案:

答案 0 :(得分:0)

您可以通过执行

window.open设置为不可配置且不可写
Object.defineProperty( window, "open",
  {  writable: false,
     configurable: false
  }
);

在加载或执行其他脚本之前。

Chrome会报告尝试将window.open设置为true

  

Uncaught TypeError: Cannot assign to read only property 'open' of object '#<Window>'

以及尝试的详细信息。 Firefox的行为与

的错误消息类似
  

TypeError: "open" is read-only

<小时/> 请注意,MDN description of modifying existing properties,在2018年6月1日声明,尝试写入不可写属性“也不会抛出错误”。这似乎不正确,与代码示例注释不匹配。