防止页面在iframe之外显示

4

我有一个页面,它像导航一样工作,并且在此页面中有一个iframe显示内容。

现在有些情况下,内部页面会直接显示在浏览器中。例如:如果有人在浏览器地址栏中输入内部页面的url,则该页面将显示在窗口中。

我想要防止这种情况发生。

更好的做法是,我希望重定向到任何其他页面。

2个回答

3

window.parent: 包含该框架的窗口对象。如果窗口是顶层窗口,则window.parent指向窗口本身。(它从不为null。)

window.top: 顶层窗口对象,即使当前窗口是顶层窗口对象也是如此。

window.self: 当前窗口对象。(它是window的同义词。)

因此,我会像这样编写我的检查:

if (window.top == window.self) {
  window.location = "index.html";
}

这与稍微含糊的表述是相同的:

if (window.top == window) {
  window.location = "index.html";
}

2
<script language="Javascript"><!-- 
if (top.location == self.location) { 
  top.location = "index.html" // must be viewed in main index
}
//--></script>

将其修改为iframe决定成为主frame的情况。


除了忘记结束花括号外,这是完美的 +1。 - Zachary Yates

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接