用javascript防止框架页面脱离或嵌套到他人页面中

     1、由于链接其它页面或循环链接造成框架结构页面的一个帧里嵌套了另一个含有框架结构的页面,影响了页面效果和实际阅读面积,或者自己精心设计的框架页面被别人链接而嵌入别人的框架结构中,作为他人页面的一部分.那么如何防止页面被嵌套在其他框架结构里呢?
只要在页面头部<head>内加入下面的代码即可.

     <script language="javascript">
     <!--
     if (self!=top){
     top.location=self.location;
     }
     /-->
     </script>

     self指语句本身所处的帧(在有框架的情况下)或当前窗口,top指包含框架的最上层窗口.此语句的意思是,如果本窗口不是最上层窗口,就将最上层窗口的地址改为本帧的地址.这样,此页面的内容就覆盖了调用它的文件.
将此语句放置在含在<frameset>的网页中,可以防止框架嵌套;放置在普通页面中,可以防止此页面被嵌入框架结构中.
实现上述目的还可以使用下面这种方法:

     <script language="javascript">
     <!--
     if (top.frames.length!=0) top.location=self.location;
     -->
     </script>

     上面的语句是通过判断窗口中帧的数量是否为零,在不为零时,将最上层窗口的地址改为本帧的地址.将上面的代码加入到HTML,也可以保护页面不出现在别人的帧页面中,而始终以整个页面显示.

     2、本该在框架结构中的内部页面被用户打开到单独浏览器中,失去了相应的框架导航作用.那么如何才能防止页面脱离框架结构?
只要在相应页面中加入下面的代码即可.

     if (self==top) {
     self.location.href="url";
     }

     这里的url应该设置成网页中定义相应框架的页面地址,即含有<frameset>的网页地址.这段代码的意思是,如果本窗口是最上层窗口,即独立窗口,就将本窗口的地址改为框架结构的页面地址

posted @ 2010-12-09 15:45  Sue_娜  阅读(949)  评论(0编辑  收藏  举报