学习一个知识点最好的方法就是自己动手去的实现一些简单的helloworld,虽然可以在网上可以找到很多总结,但自己实现的过程才是自己的,期间遇到问题并解决问题的过程也会让自己记忆理解更加深刻。
iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法)
主页面调用iframe;
iframe页面调用主页面;
主页面的包含的iframe之间相互调用;
主要知识点
1:document.getElementById("ii").contentWindow 得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了;
2:$("#ii")[0].contentWindow 如果用jquery选择器获得iframe,需要加一个【0】;
3:$("#ii")[0].contentWindow.$("#dd").val() 可以在得到iframe的window对象后接着使用jquery选择器进行页面操作;
4:$("#ii") [0].contentWindow.hellobaby="dsafdsafsdafsdafsdafsdafsadfsadfsdafsadfdsaffdsaaaaaaaaaaaaa"; 可以通过这种方式向iframe页面传递参数,在iframe页面window.hellobaby就可以获取到值,hellobaby是自定义的变量;
5:在iframe页面通过parent可以获得主页面的window,接着就可以正常访问父亲页面的元素了;
6:parent.$("#ii")[0].contentWindow.ff; 同级iframe页面之间调用,需要先得到父亲的window,然后调用同级的iframe得到window进行操作;
源码
main.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>显示图表</title> <script src="http://www.cnblogs.com/http://www.cnblogs.com/scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <script type="text/javascript"> var gg="dsafdsafdsafdsafsdaf"; function ggMM() { alert("2222222222222222222222222222222"); } function callIframeMethod() { //document.getElementById("ii").contentWindow.test(); $("#ii")[0].contentWindow.test(); //用jquery调用需要加一个[0] } function callIframeField() { alert($("#ii")[0].contentWindow.ff); } function callIframeHtml() { alert($("#ii")[0].contentWindow.$("#dd").val()); //alert($("#ii")[0].contentWindow.document.getElementById("dd").value); //alert($("#ii")[0].contentWindow.document.getElementById("dd").value); } function giveParameter() { $("#ii")[0].contentWindow.hellobaby="dsafdsafsdafsdafsdafsdafsadfsadfsdafsadfdsaffdsaaaaaaaaaaaaa"; } </script> </head> <body> <a href="#" onClick="giveParameter();">参数传递</a> <a href="#" onClick="callIframeMethod();">调用子iframe方法</a> <a href="#" onClick="callIframeField();">调用子iframe变量</a> <a href="#" onClick="callIframeHtml();">调用子iframe组件</a></br> <iframe id="ii" src="frame.htm" width="100%" frameborder="0"></iframe> <iframe id="new" src="newFrame.htm" width="100%" frameborder="0"></iframe> </body> </html>
frame.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>显示图表</title> <script src="http://www.cnblogs.com/http://www.cnblogs.com/scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <script type="text/javascript"> var ff="adfdasfdsafdsafdsaf"; function test() { alert($("#dd").val()); } function callMainField() { alert(parent.gg); } function callMainMethod() { parent.ggMM(); } function callMainHtml() { alert(parent.$("#ii").attr("id")); } function getParameter() { alert(window.hellobaby); } </script> </head> <body> <a href="#" onClick="getParameter();">接受参数</a> <a href="#" onClick="callMainMethod();">调用子iframe方法</a> <a href="#" onClick="callMainField();">调用主窗口变量</a> <a href="#" onClick="callMainHtml();">调用子iframe组件</a> <input id="dd" type="text" value="1111111111"/> </body> </html>
兄弟iframe页面 newIframe.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>显示图表</title> <script src="http://www.cnblogs.com/http://www.cnblogs.com/scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <script type="text/javascript"> function callLevelFrame() { var ff=parent.$("#ii")[0].contentWindow.ff; alert(ff); } </script> </head> <body> <a href="#" onClick="callLevelFrame();">调用兄弟iframe</a> <input id="nn" type="text" value="sdafsdfsa"/> </body> </html>
相关推荐
本文介绍了layer弹出子iframe层父子页面传值的实现方法,分享给大家,具体如下: 父页面获取子页面元素 格式: $("#iframeID").contents().find("#eleID") 示例代码: father.html <!DOCTYPE html> <...
"iframe子父页面调用js函数示例...4. JS 中 iframe 之间传值及子页面与父页面应用 5. javascript 猎取 iframe 里页面中元素值的方法 6. JS 实现 iframe 跨页面调用函数的方法 7. JS 如何对 Iframe 内外页面进行操作总结
iframe.contentWindow.postMessage('Hello from parent', '*'); ``` - 子页面接收消息: ```javascript window.addEventListener('message', function(event) { if (event.origin !== '...
**iframe的父子、子与子之间的交互** 在Web开发中,有时我们需要在iframe中嵌入的页面与主页面,或者两个嵌套的iframe之间进行数据交换和功能交互。这可以通过JavaScript来实现,主要涉及以下几个方面: 1. **父...
本文将详细介绍如何在父页面与子页面(包括通过`iframe`嵌入的页面和通过`window.open`打开的新窗口)之间实现数据共享和方法调用。 #### 1. 使用`iframe`实现父子页面间的通信 **父页面:** 父页面可以通过获取`...
在处理`iframe`时,经常需要进行父子页面间的交互,例如从`iframe`调用父页面的函数或传递数据。下面我们将详细介绍`js`中`iframe`调用父页面方法的相关知识点。 1. **基本调用方式** 在`iframe`中的页面,可以...
总结以上内容,通过JavaScript操作iframe父子窗体可以实现父窗口和子窗口间的数据访问和方法调用。这种方式常用于网页中嵌入第三方页面时,父页面需要与嵌入的页面进行交互的场景。在进行操作时,需要注意同源策略的...
在网页开发中,有时我们需要在不同的页面之间传递参数,特别是在使用`iframe`嵌套页面时。`iframe`的父子通信可以让我们实现不同页面间的交互,无论是同源策略下的非跨域通信,还是需要应对跨域场景。下面我们将详细...
子页面则可以调用`window.parent.postMessage`向父页面发送数据。 4. 使用框架(如`iframe`):如果子页面是嵌入在父页面中的,可以通过`iframe`的API进行通信。例如,父页面可以访问`iframe.contentWindow`对象与...
if (iframeWin.contentWindow.doSubmit(top_iframe)) { top.layer.close(index); // 关闭对话框 top.window[iframeName].frames.location.reload(); // 刷新父亲 } }, cancel: function (index) {} }); } ```...
这种交互通常发生在父子页面(通过iframe)或打开窗口与母窗口之间。本篇文章将详细探讨如何实现这些跨页面的DOM访问。 首先,我们来看**iframe子页面与父页面之间的访问**: 1. **访问DOM**: - 父页面访问子...
`window.postMessage`不仅在简单的父子窗口或`iframe`通信中发挥作用,还可以用于实现更复杂的跨窗口通信场景,如多个`iframe`之间的通信,或者在不同窗口之间传递复杂的数据结构。在实际应用中,开发者可以结合`...
- 使用parent关键字进行父子页面交互,这在多数浏览器中都得到了良好的支持。 - 实现了window对象的统一化,减少了在每次交互时需要重新引用的链路,从而提高运行速度。 - 编写代码变得轻松便捷,减少了出错的...
总结,JavaScript提供了一些机制来在不同页面之间共享和调用函数和变量,主要通过`window.opener`和`window.parent`属性。然而,由于同源策略的存在,实际应用中需要注意跨域问题,并考虑使用其他通信手段如`post...
8. **IFrame通信**:如果子页面是嵌入在父页面的IFrame中,可以通过`window.parent`或`window.frames`访问父页面,利用`contentWindow`属性进行通信。这种方法适用于同源策略下的父子页面交互。 每种方法都有其适用...
在网页开发中,有时我们需要在不同的`frame`之间进行数据通信或者函数调用,以便于实现页面间的交互。jQuery提供了一种方式来实现这样的功能,特别是在处理旧版本的IE浏览器时,它提供了一些兼容性的解决方案。本文...
2. 与`Window.parent`或`Window.frames[0]`进行父子窗口之间的通信。 3. 在跨域环境中,`postMessage`可用于安全地传递信息,避免了传统的`jsonp`、`Cors`、`document.domain+iframe`、`window.name`和`location....
通过上述方法,可以实现在父页面与子页面之间获取元素、调用函数或操作对象的交互。这些技巧为Web开发提供了便利,让开发者能够更好地管理复杂的页面结构,提高用户体验。 总之,合理利用JavaScript提供的window...