如果有人知道的话,我想把它做出来,这样就没有人可以把我的iWeb站点放在iframe中了?如何使我的页面自动脱离iframe?
这个答案也适用于这个问题:
如果将此代码放在iframe
内部引用的HTML中,则该代码将起作用。它的工作方式是查看top
(您请求的包含iframe
的页面(和self
(iframe
中的页面(。如果有不同,则会更改top.location以匹配iframe
的URL。
这里有一些ASCII来帮助理解这个
|----[OuterPage.html]------|
| |
| |--[InnerPage.html]-| |
| | | |
| | top !== self | |
| | | |
| |-------------------| |
| |
| top === self |
| |
|--------------------------|
如果您单独请求InnerPage.html(不在iframe中(,则top === self
的计算结果将为true,但是,如果您在一个iframe内请求相同的页面,则相同的条件的计算结果为false。
这里还指定了一个http标头X-Frame-Origin
,您可以将其放入服务器响应中,如果设置为SAMEORIGIN
,它将完全阻止浏览器呈现iframe。
然而,它是一个依赖于浏览器的解决方案(因为在浏览器中必须支持标头才能尊重其值(,但比JS tricky IMO.更好。