iframe父页面与子页面之间的元素获取与方法调用

本文详细介绍了父页面与子页面间的元素获取与方法调用技巧,涵盖了JavaScript与jQuery的多种方式,包括父调子与子调父的方法和元素操作,为网页开发中的 iframe 嵌套提供了实用解决方案。

父页面与子页面之间的元素获取与方法调用:

1、JS

父调子方法:
window.onload = function () {
    1、 document.getElementById("子页面元素ID").contentWindow.子页面方法名;
    2、 document.getElementsByTagName("子页面元素标签名")[i].contentWindow.子页面方法名;
    3、 document.getElementsByClassName("子页面元素类名")[i].contentWindow.子页面方法名;

  }

父调子元素:
winwindow.onload = function () {
dow.frames[iframe的name属性值];
}
子调父元素:
window.onload = function () {
1、window.parent.document.getElementById("父页面元素ID");
2、window.parent.document.getElementsByTagName("父页面元素标签名")[i];
3、window.parent.document.getElementsByClassName("父页面元素类名")[i];
}

子调父方法:
window.onload = function () {
window.parent.父页面方法;
}

2、JQ

父调子元素:
window.onload = function () {
	$(iframe选择器).contents().find(iframe中元素选择器);
}
父调子方法:
window.onload = function () {
	$(iframe选择器)[0].contentWindow.子页面方法名;
}


子调父元素:
window.onload = function () { 
$(父页面元素选择器, window.parent.document);
 window.parent.$(父页面元素选择器)window.parent.父页面方法;
}

子调父方法:
window.onload = function () { 
window.parent.父页面方法;
}

 

iframe页面调用获取iframe父页面方法元素,可通过以下几种常见方式实现: ### 获取父页面元素 - **使用`jQuery`选择器**:若页面引入了`jQuery`,可以使用`$("#parentDiv", window.parent.document).text()`或`$("#parentDiv", parent.document).text()`来获取父页面中`id`为`parentDiv`的元素的文本内容。这里通过`window.parent.document`或`parent.document`指定了查找元素的上下文为父页面的文档对象 [^1]。 ```javascript // 获取父页面中id为parentDiv的元素的文本内容 const parentDivText = $("#parentDiv", window.parent.document).text(); console.log(parentDivText); ``` - **使用原生`JavaScript`方法**: - **通过`id`获取**:使用`window.parent.document.getElementById("父页面元素ID")`可以获取父页面中指定`id`的元素 [^2]。 ```javascript // 获取父页面中id为parentElementId的元素 const parentElement = window.parent.document.getElementById("parentElementId"); if (parentElement) { console.log(parentElement.textContent); } ``` - **通过标签名获取**:使用`window.parent.document.getElementsByTagName("父页面元素标签名")[i]`可以获取父页面中指定标签名的元素列表,`i`为元素在列表中的索引 [^2]。 ```javascript // 获取父页面中第一个div元素 const parentDiv = window.parent.document.getElementsByTagName("div")[0]; if (parentDiv) { console.log(parentDiv.textContent); } ``` - **通过类名获取**:使用`window.parent.document.getElementsByClassName("父页面元素类名")[i]`可以获取父页面中指定类名的元素列表,`i`为元素在列表中的索引 [^2]。 ```javascript // 获取父页面中第一个具有parentClass类的元素 const parentClassElement = window.parent.document.getElementsByClassName("parentClass")[0]; if (parentClassElement) { console.log(parentClassElement.textContent); } ``` ### 调用父页面方法页面中可以通过`window.parent`来调用父页面方法。假设父页面有一个名为`parentFunction`的方法: ```javascript // 父页面代码 function parentFunction() { console.log("父页面方法调用"); } // 页面代码 window.parent.parentFunction(); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值