处理框架 - 固定网站内容

时间:2013-08-05 11:46:21

标签: javascript frame frameset

我正在我的网站上工作,主页面(index.html)由两个框架组成:page1.html和page2.html。这是代码:

<!DOCTYPE html>
<head>  
<frameset rows="16%,84%" framespacing="0" border="0" frameborder="0">
  <frame name="page1" target="page2" src="page1.html" scrolling="auto">
  <frame name="page2" src="page2.html" target="_self" scrolling="auto">
<noframes></noframes>
</head>
</html>
  • 第一个作为包含页面的固定内容 多个链接到网站的其余部分。这绝对重要 这个页面每时每刻都是开放的。

  • 第二个是“身体”,内容区域,任何时候都被替换 点击链接。

所以这是我的问题:如果不是从index.html访问任何页面,例如google,page1.html将不存在,因为它只通过index.html打开,并且该站点将缺少它的主链接。 / p>

我正在寻找一个代码来检查页面“page1.html”是否存在,如果不存在,请将其作为一个框架打开。

我最接近的是这个javascript代码:

<script language="javascript">
window.onload=function(){
    if(self==parent)
        window.location.href = "index.htm"
}
</script>

如果不是从index.html进入页面的任何用户,它将重定向到它。但那仍然没有好处。有线索吗?

2 个答案:

答案 0 :(得分:1)

当我读到你的问题时,首先想到的是阅读window.frames.length并采取行动。正是你自己做了什么。

但是,您现在几乎可以看到framesetframe被弃用的技​​术。相反,将链接放在HTML5&lt; nav&gt;中或者常规&lt; div&gt;,然后将内容放入HTML5&lt; article&gt;或其他常规&lt; div&gt;。接下来使用vanilla / plain JavaScript或jQuery等框架动态加载内容。

如果你坚持将导航链接放在永远不会消失的“框架”中,并且你想将HTML文件加载到屏幕的子部分,那么我仍然会将导航链接放在&lt; nav&gt中;或者&lt; div&gt;并使用&lt; iframe&gt;对于内容。

答案 1 :(得分:0)

框架已被弃用但无论如何:
检查页面是否是这样的父框架:

if(window.top == window.self)

window.top是父框架,window.self是当前框架。它们是相同的,没有父框(集)。