浅析location.href跨窗口调用函数


Posted in Javascript onNovember 22, 2016

location.href这个东西常常用于跳转,location既是window对象的属性,又是document对象的属性。

JavaScript hash 属性 -- 返回URL中#符号后面的内容
JavaScript host 属性 -- 返回域名
JavaScript hostname 属性 -- 返回主域名
JavaScript href 属性 -- 返回当前文档的完整URL或设置当前文档的URL
JavaScript pathname 属性 -- 返回URL中域名后的部分
JavaScript port 属性 -- 返回URL中的端口
JavaScript protocol 属性 -- 返回URL中的协议
JavaScript search 属性 -- 返回URL中的查询字符串
JavaScript assign() 函数 -- 设置当前文档的URL
JavaScript replace() 函数 -- 设置当前文档的URL,并在history对象的地址列表中删除这个URL
JavaScript reload() 函数 -- 重新载入当前文档
JavaScript toString() 函数 -- 返回location对象href属性当前的值
有几种不同的调用方法,弄到自己有点乱,这次一次性写个实例,完完全全不再混淆。本次用3个页面解决问题:

3.html 本窗口:

<html>
<head>
<title>js</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
  $(function(){
    $("#parent").click(function(){
      parent.location.href = "https://3water.com/article/97882.htm";  //父亲Iframe被跳转
    })
    $("#top").click(function(){
      top.location.href = "https://3water.com/article/97882.htm";    //爷爷Iframe(最外层)被跳转
    })
    $("#self").click(function(){
      self.location.href = "https://3water.com/article/97882.htm";    //自己跳转
    })
    $("#parentparent").click(function(){
      parent.parent.location.href = "https://3water.com/article/97882.htm";  //爷爷IFrame跳转,可以获取到任意层级的父窗口
    })
  })

  function ParentRun()
  {
    alert("儿子IFrame方法!");
  }
</script>
</head>
<body>
我是儿子!
<input type="button" id="parent" value="parent.location.href" />
<input type="button" id="top" value="top.location.href" />
<input type="button" id="self" value="self.location.href" />
<input type="button" id="parentparent" value="parentparent.location.href" />
</body>
</html>

2.html 父窗口:

<html>
<head>
<title>js??</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
  $(function(){
    $("#Outermost").click(function(){
      //判断当前IFrame是否是最外层页面
      if (top.location == self.location) {
        alert("本Iframe是最外层框架");
      }
      else{
        alert("本Iframe不是最外层框架");  //这个被弹出
      }
    })

    $("#Son").click(function(){
      //window.frames[0].location = "https://3water.com/article/97882.htm";
      window.frames["Son"].location = "https://3water.com/article/97882.htm";
    })

    $("#SonFunction").click(function(){
      window.frames["Son"].ParentRun();  //IE支持,google发布后)支持(文件系统中不支持)
    })

    $("#ParentFunction").click(function(){
      parent.SonRun();  //IE支持,google发布后支持(文件系统中不支持)
    })
  })
</script>
</head>
<body>
我是父亲!
<iframe src="3.html" name="Son" style="width:300px; height:300px;" ></iframe>
<input type="button" id="Outermost" value="判断当前IFrame是否最外层" />
<input type="button" id="Son" value="控制儿子IFrame跳转" />
<input type="button" id="SonFunction" value="调用子窗口函数">
<input type="button" id="ParentFunction" value="调用父窗口函数">
</body>
</html>

1.html 爷窗口:

<html>
<head>
<title>js</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
  $(function(){
    alert(window.location == document.location);  //输出 true
  })

  function SonRun()
  {
    alert("爷爷IFrame方法!");
  }
  
  //http://localhost:666/1.html?id=1&name=%E5%BC%A0%E4%B8%89#menu
  document.write(location.hash + "<br/>");    //  #menu
  document.write(location.host + "<br/>");    //  localhost:666
  document.write(location.hostname + "<br/>");  //  localhost
  document.write(location.pathname + "<br/>");  //  /1.html
  document.write(location.port + "<br/>");    // 666
  document.write(location.protocol + "<br/>");  // http:
  document.write(location.search + "<br/>");    // ?id=1&name=%E5%BC%A0%E4%B8%89
  document.write(location.assign + "<br/>");    // function () { [native code] }
</script>
</head>
<body>
我是最爷爷(最外层)!
<iframe src="2.html" style="width:500px; height:500px;" ></iframe>
</body>
</html>

三个页面放在同一个目录,随便点下就知道怎么回事了!

jQuery对IFrame的操作主要是通过

$("iframe").contents().find("#id1");

进行跨IFrame操作。

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
js四舍五入数学函数round使用实例
May 09 Javascript
jQuery中click事件的定义和用法
Dec 20 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
JS验证输入的是否是数字及保留几位小数问题
May 09 Javascript
vue实现点击关注后及时更新列表功能
Jun 26 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 #Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 #Javascript
基于js实现checkbox批量选中操作
Nov 22 #Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 #Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 #Javascript
详解Js模板引擎(TrimPath)
Nov 22 #Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 #Javascript
You might like
重置版战役片段
2020/04/09 魔兽争霸
php实现通过ftp上传文件
2015/06/19 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python打包多类型文件的操作方法
2020/09/21 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
网站开发实习生的自我评价
2013/12/11 职场文书
自荐信写法介绍
2014/01/25 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
幼师求职自荐信
2014/05/31 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
师范生见习自我总结
2015/06/23 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS