位置:海鸟网 > IT > JavaScript >

将页面强制保持在所属框架中

在有的情况下,用户可能会遇到一些内容文档独立于本该包含它的框架集之外(比如我们在制作管理页面的首页时,常常是一个框架集,框架子页如果用Ctrl+N打开就会落在框架集之外),为了避免内容页出现在框架集环境之外,可以在任何需要出现框架集中的文档标头处添加以下JS代码:

<script language="JavaScript">
<!-- 对就得浏览器隐藏
if (top.location==self.location){
self.location.replace("frameset.html")
}
// 停止隐藏 -->
</script>

脚本的第一行检查当前窗口的最顶层框架是否为该文档,如果是,则脚本的第二行就通知浏览器用框架集文档(本例中为frameset.html,不过要在这个位置上替换上你自己的文件名称) 来代替这个文档.


另外一个可用的技巧是: 使用动态页面的条件显示来制作框架集

例如我们使用 ASP/VB 建立如下框架集

<frameset rows="461*" cols="166,710*" frameborder="NO" framespacing="0">
<frame src="default.asp?action=menu" scrolling="auto" noresize>
<frameset rows="25,*" cols="*" framespacing="0" frameborder="NO">
<frame src="default.asp?action=head" frameborder="no" scrolling="NO" noresize marginwidth="0" marginheight="0" framespacing="0">
<frame src="default.asp?action=main" frameborder="no" marginwidth="0" marginheight="0" framespacing="0">
</frameset>
</frameset>
<noframes>

这里的框架子叶为同一个文件default.asp的不同部分(使用条件显示区分内容),分别是:

default.asp?action=menu

default.asp?action=head

default.asp?action=main

这样产生的框架集用 Ctrl + N的方式代开 子叶内容永远是落在框架集里的.