浅析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 相关文章推荐
遍历jquery对象的代码分享
Nov 02 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
jQuery DOM操作实例
Mar 05 Javascript
json的定义、标准格式及json字符串检验
May 11 Javascript
JS 使用for循环遍历子节点查找元素
Sep 06 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
Mar 05 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
Nov 05 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
利用php绘制饼状图的实现代码
2013/06/07 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
用Python编写简单的定时器的方法
2015/05/02 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
基于Python的PIL库学习详解
2019/05/10 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
postman传递当前时间戳实例详解
2019/09/14 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
关于运动会的稿件
2014/02/02 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
厕所文明标语
2014/06/11 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
如何写好闭幕词
2019/04/02 职场文书