iframe子页面与父页面间元素及js变量的访问

1、子页面访问父页面元素 

window.parent.document.getElementById("openId").value; 

jQuery方法为: 

$(window.parent.document).contents().find("#openId").val();
与document相关的方法都可以这样用 

2、父页面访问子页面元素 

document.getElementById("iframeId").contentDocument.getElementsByTagName("table");
 contentDocument后可以使用document相关方法 

jQuery方法为: 

$("#iframeId").contents().find("#openId").val(); 

   $(window).load(function (){
        alert($("#iframepage").contents().find("#openId").val());
        $("#iframepage").contents().find("#openId").val(1111);
        $("#modifybtn").click(function(){
            alert($("#iframepage").contents().find("#openId").val());
        });
    });
    $(document).ready(function(){
        $("#modifybtn").click(function(){
            alert($("#iframepage").contents().find("#openId").val());
        });
    });
  window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 
 $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 

在ready下直接改子页面中元素无效,或是alert元素的值显示undefined,原因应该是子页面还没加载完毕,父页面就去访问子页面元素造成的,这时用window.onload可避免

3、子页面访问父页面js变量(注:父页面的js变量需为全局变量) 

父页面:

var variableParent=......;

子页面:

var variable = parent.variableParent;
  (variableParent为父页面定义的变量) 

4、父页面访问子页面js变量 

两种方法:

第一种:用定时器去尝试获取子页面中的变量

var dIframe = document.getElementById('iframepage'),
 oWin = dIframe.contentWindow;
 var i = 0,
 _timer = setInterval(function() {   //用定时器去尝试获取子页面中的变量
 if (i >= 100 && _timer) {
 clearInterval(_timer);
 }
 if (oWin && typeof(oWin.deviceID) != 'undefined') {
 alert('来自子页面sun.html的变量a:' + oWin.deviceID);
 if (_timer) {
 clearInterval(_timer);
 }
 }
 i ++;
 }, 30);

第二种:通过在父页面编写回调函数,再在子页面调用,达到传值的目的

父页面:
function deviceIdCallback(deviceId) {
    alert(deviceId);
}

子页面:
deviceID=data.deviceId;
$(window.parent.deviceIdCallback(deviceID));


(参考:http://abc08010051.iteye.com/blog/1843120)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国家级实验教学示范心联席会计算机学科规划教材 教育部高等学校计算机类专业教学指导委员会推荐教材 面向“工程教育认证”计算机系列课程规划教材 谢从华,高蕴梅,黄晓华.Web系统与技术[M],清华大学出版社,2018年6月 第1章 Web系统与技术的基础知识... 1 1.1 Internet介绍... 1 1.1.1 Internet含义... 1 1.1.2 TCP/IP协议... 1 1.1.3 域名... 2 1.1.4 URL. 3 1.1.5 MIME. 3 1.1.6 HTTP协议... 4 1.2 Web浏览器... 5 1.3 Web服务器... 5 1.3.1 Web服务器... 5 1.3.2 Apache服务器... 5 1.3.3 IIS服务器... 6 1.4系统的主要技术概述... 7 1.4.1 HTML 概述... 7 1.4.2 JavaScript概述... 8 1.4.3 XML概述... 8 1.4.4 PHP概述... 8 1.4.5 Ajax概述... 9 1.5习题... 9 第2章 HTML网页设计基础... 10 2.1 HTML 网页... 10 2.1.1 简介... 10 2.1.2 HTML文件结构... 10 2.1.3 文件编辑器... 12 2.2 HTML基本标签... 13 2.2.1 元信息标签<Meta>. 13 2.2.2 文本标签... 18 2.2.3 列表标签... 20 2.2.4 表格标签... 24 2.2.5 超级链接标签... 27 2.2.6 图像标签... 29 2.2.7 背景声音标签... 29 2.2.8 视频标签... 29 2.3 网页表单和控件... 30 2.3.1 表单标签<form>. 30 2.3.2 表单的控件... 31 2.3.3 获取表单数据... 37 2.4 框架标签... 39 2.4.1 帧标记<frame>. 39 2.4.2 IFRAME标记... 40 2.5 习题... 40 第3章 CSS样式设计... 43 3.1 CSS 简介... 43 3.2 CSS 语法与使用... 43 3.2.1 CSS定义语法... 43 3.2.2 CSS的使用... 44 3.2.3 选择符... 48 3.3 CSS样式设计... 51 3.3.1字体样式... 51 3.3.2文本样式... 53 3.3.3颜色样式... 56 3.3.4 列表样式... 57 3.3.5表格样式... 60 3.4.6 鼠标样式... 64 3.4.7 滤镜样式... 67 3.4 CSS页面布局... 78 3.4.1 文本对齐... 78 3.4.2盒模型... 81 3.4.3文字环绕float样式... 85 3.4.4 元素定位... 86 3.6 习题... 88 第4章 网页数据的有效性验证... 92 4.1验证控件... 92 4.1.1 验证控件分类... 92 4.1.2 ASP页面验证控件... 92 4.2 正则表达式... 102 4.2.1常用的元字符... 102 4.2.2 复杂的正则表达式... 102 4.3 正则表达式应用... 104 4.3.1 RegExp对象... 104 4.3.2 String 对象的正则表达式方法... 106 4.4 常见的正则表达式... 107 4.5 习题... 108 第5章 JavaScript编程技术... 109 5.1 JavaScript编程基础... 109 5.1.1 JavaScript简介... 109 5.1.2 Javascript的使用方法... 109 5.1.3 语法规则... 111 5.1.4 运算符和表达式... 112 5.1.5 函数... 117 5.1.6流程控制... 121 5.1.7 事件处理... 128 5.2 JavaScript对象编程... 130 5.2.1 Object 类型... 131 5.2.2 Array对象... 131 5.2.3 String对象... 133 5.2.4 Math对象... 138 5.2.5 Number对象... 142 5.2.6 Data对象... 143 5.3 JavaScript ActiveX编程技术... 145 5.3.1 FileSystemO

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值