JavaScript的本机原型何时在同源帧中共享?

时间:2014-03-13 21:57:43

标签: javascript iframe prototype

今天我发现,对于www.cnn.com(示例中为window[0])的某些iframe,他们有

Array.prototype === window[0].Array.prototype

当然,从框架内他们也有

Array.prototype === top.Array.prototype

同样适用于ObjectFunction等。但我找不到有关此行为的任何信息,如果我创建一个具有同源iframe的plunkr,我就无法重现它。主页面和框架都将document.domain设置为cnn.com,但这似乎对我的情况也没有帮助。 Array.prototype不可配置,因此我不清楚如何通过脚本有目的地完成此操作。我在FF 29上遇到过这种情况(但无法复制),而不是在Chrome 33上。

1 个答案:

答案 0 :(得分:1)

我对你的问题感到困惑,但我想你在问为什么需要跨框架共享Native对象原型。在正常情况下,你不会这样,这种情况就是这样 false == (<Iframe>.window.Array.prototype === window.Array.prototype)我猜他们试图强制这种条件在文档中是正确的。我对这个问题的直觉表明,在他们的代码内容的某个地方,他们需要有条件地评估“真实”。听起来像是黑客。