javascript之Iframe之间通信

本文讨论都是在同域(同一域名,同一端口,同一协议)下进行。

以下我们讨论三个问题:1、iframe子页面和父页面相互获取元素,2、iframe子页面和父页面相互调用方法和变量。

一. iframe子页面和父页面相互获取元素

  1. 子页面获取父页面元素

//获取父页面 $("#id")的元素

Js原生:window.parent.document.getElementById ("元素id");

Jquery: $("#id", parent.document);

  1. 父页面获取子页面元素

//获取子页面 $("#id")的元素

Js原生:window.frames[iframe序号].document.getElementById("元素id");

Jquery:$("#iframeID").contents().find("#元素ID");

图1、获取元素

二. iframe子页面和父页面相互调用方法和变量

  1. 子页面调用父页面方法和变量

//调用父页面方法和变量

window.parent.func(); //调用方法

window.parent.value; //调用变量

  1. 父页面调用子页面方法和变量

//调用子页面方法和变量

window.frames[iframe序号].func();//调用方法

window.frames[iframe序号].value; //调用变量

图2、调用方法和变量

说明:

  1. iframe之间相互通信的前提是页面加载完成,所以我们从上面可以看到 父页面获取子页面元素,调用子页面方法、变量时使用了window.frames[0].onload =function(){}包裹来确保子页面加载完成。

  2. 父页面获取子页面iframe内容不止上述一种方法,还可以iframeidiframeName来获取,即document.getElementById('iframeId').contentWindow.document.getElementById('子页面中的元素ID');iframeName.window.document.getElementById('子页面中的元素ID');

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,970评论 1 45
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,622评论 0 21
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,736评论 0 8
  • 欢迎关注个人微信公众账号:byodian个人博客:Byodian's Blog JavaScript 基础知识总结...
    工具速递阅读 4,110评论 0 3
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,621评论 0 0