浅析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 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
Javascript之旅 对象的原型链之由来
Aug 25 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
快速查找数组中的某个元素并返回下标示例
Sep 03 Javascript
JavaScript如何自定义trim方法
Jul 28 Javascript
工厂模式在JS中的实践
Jan 18 Javascript
js实现五星评价功能
Mar 08 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 Javascript
element-ui 文件上传修改文件名的方法示例
Nov 05 Javascript
vue封装数字翻牌器
Apr 20 Vue.js
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
PHP生成带有雪花背景的验证码
2008/09/28 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
原生js实现购物车功能
2020/09/23 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
Python中字典映射类型的学习教程
2015/08/20 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
基于python实现对文件进行切分行
2020/04/26 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
入党申请人的自我鉴定
2013/12/01 职场文书
高中生期末评语大全
2014/01/28 职场文书
网络宣传方案
2014/03/15 职场文书
家长学校工作方案
2014/05/07 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书