我有一个javascript函数,它实际上使用window.open((方法在Iframe中加载页面。但我确信通过另一个脚本,window.open 被覆盖了。这就是为什么我收到一个错误
Uncaught TypeError: window.open is not a function
有没有办法找出哪个脚本实际执行此操作,而无需在所有脚本中找到。因为页面有很多脚本。
您可以通过执行以下命令将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 在 2018 年 6 月 1 日对修改现有属性的描述指出,尝试写入不可写属性"也不会引发错误"。这似乎不正确,并且与代码示例注释不匹配。