top.location.href和localtion.href代码剖析

举报
tea_year 发表于 2021/12/30 00:58:10 2021/12/30
【摘要】 $("#updateform").ajaxSubmit(function(data) { alert(data); if(data){ self.location.hre...



  
  1. $("#updateform").ajaxSubmit(function(data) {
  2. alert(data);
  3. if(data){
  4. self.location.href="/moocgd/BasicServlet?method=getBasicinfo&userid=${user.id}";
  5. }
  6. });

针对上述代码段,中的self.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(){undefined

   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" οnclick=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地址

 

 

top表示主窗口,location表示当前窗口,如果你的文件只有一个框架,没有iframe和frmaeset,那么是完全一致的,没有区别。

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/81196187

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。