top.location、self.location和window.location.href的区别

top.location.href=”url” 在顶层页面打开url(跳出框架)
self.location.href=”url” 仅在本页面打开url地址
parent.location.href=”url”   在父窗口打开Url地址
this.location.href=”url”    用法和self的用法一致
if (top.location == self.location) 判断当前location 是否为顶层 来禁止frame引用,如果页面当中有自定义的frame的话,也可以将parent self top换为自定义frame的名称 ,效果就是在自定义frame窗口打开url。
实际中可能这样使用:

if(top !== self){            
  top.location.href = location.href;
 }   //禁止frame引用

以下是从网上找到的一个例子,不是很直观, 我加了上面那三行代码, 可以先去掉, 再加上, 看一下效果,就很清楚了。

top.htm 代码:

<script language=javascript>
   function rs(){
    if(top !== self){
      top.location.href = location.href;
      }
      parent.left.location.href="top.htm" ;
    parent.bot.location.href="top.htm"}
< /script>
< input type=button name=name value="ksdj" onclick=rs();>

以下是一个随意文件名的htm文件:

<FRAMESET COLS="150,*">
    < FRAME SRC="left.htm" name=left>
    < FRAMESET ROWS="150,*">
         < FRAME SRC="top.htm" name=top>
         < FRAME SRC="bot.htm" name=bot>
    < /FRAMESET>
    < /FRAMESET>

试试,可能是这样的效果!
top表示主窗口,location表示当前窗口,如果你的文件只有一个框架,没有iframe和frmaeset,那么是完全一致的,没有区别。
top.location是在顶层frame中打开新页 window.location是在当前frame中打开新页
parent.location 在当前窗口的父窗口打开Url地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值