0

我在我的网站上工作,主页 (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 打开,并且该站点将丢失它的主要链接。

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

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

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

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

4

2 回答 2

1

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

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

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

于 2013-08-05T12:10:29.293 回答
0

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

if(window.top == window.self)

window.top 是父框架,window.self 是当前框架。如果它们相等,则没有父框架(集)。

于 2013-08-05T12:19:58.237 回答