`
747017186
  • 浏览: 331460 次
社区版块
存档分类
最新评论

在iframe中调用js父页面和子页面方法

    博客分类:
  • js
 
阅读更多

在iframe中调用父页面和子页面js方法:

今天朋友问我:a页面用iframe引入b页面,而此时要在a页面怎么调用iframe所引入b页面里的方法,很熟悉,但就是忘记了,后来百度下,才晓得,主要通过window.frames["name属性"].方法名(),也就是iframe中的name属性,b页面调用a页面中的方法略过看代码吧

index.html

<html>
<head>
<script type="text/javascript">
function ff(){
alert(">>this is index's js function");
}
</script>
</head>
<body>
<div style="background: lightblue;">
<input type="button" value="index" onclick="ff();" />
<input type="button" value="inner" onclick='window.frames["childPage"].ff();' />
</div>
<iframe id="" name="childPage" src="inner.html" width="100%" frameborder="0"></iframe>
</body>
</html>

inner.html

 

<html>
<head>
<script type="text/javascript">
function ff(){
alert(">>sdfdsdfdsfdsfsdfthis is inner page's js function");
}
</script>
</head>
<body>
<div>
<input type="button" value="index" onclick='parent.window.ff();' />
<input type="button" value="inner" onclick="ff();" />
</div>
</body>
</html>

 

 

子页面调用父页面的JS方法:window.parent.方法名();

 

下面就给出一个子孙三代的调用大家可以参考:

 

爷爷页面:

 

<!DOCTYPE html>
<html>
  <head>
    <title>frameDemo.html</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <script type="text/javascript">
  	function father(){
  		alert("father");
  	}
  </script>
  <body>
    我是iframe主文件<p/>
    <button onclick='window.frames["c1"].children();'>父调子</button>
    <button onclick='window.frames["c1"].frames["c11"].sunzi();'>父调孙</button>
    <div>
    	<iframe src="iframe/1.html" name="c1"></iframe>
    </div>
  </body>
</html>
 

 

父亲页面:

 

<!DOCTYPE html>
<html>
  <head>
    <title>1.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
	<script type="text/javascript">
		function children(){
			alert("children");
		}
	</script>
  </head>
  
  <body>
    dsddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd<p/>
    <button onclick="window.parent.father();">子调父</button>
    <button onclick='window.frames["c11"].sunzi();'>子调孙</button>
    <iframe src="2.html" name="c11"></iframe>
  </body>
</html>
 

 

孙子页面:

<!DOCTYPE html>
<html>
  <head>
    <title>2.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
	<script type="text/javascript">
		function sunzi(){
			alert("孙子");
		}
	</script>
  </head>
  
  <body>
    iframe2222222222222222<p/>
    <button onclick="window.parent.children();">孙调父</button>
    <button onclick="window.top.father();">孙调爷</button><!-- 两种方式都可以 -->
    <button onclick="window.parent.parent.father();">孙调爷</button>
  </body>
</html>

 

调用兄弟节点的方法:<button onclick='window.parent.frames["c1"].children();'>调用兄弟节点的方法</button>

其实原理是找到父页面再找兄弟页面,再找兄弟的方法。

 

切记:在iframe下JS方法之间和html元素之间,JS成员变量之间是相互不影响的,它和动态包含和静态包含不同。这一点要切记,iframe只是在页面形式上看上去有着包含的关系。其实如果在父页面要调用子页面的方法和元素必须用window对象。

 

获取元素的值:

var t=$('div',window.frames["c1"].document);//父页面取儿子页面上的属性

var m=$('div',window.frames["c1"].frames["c11"].document);//父页面取孙子页面上的属性

 

alert($('div',window.parent.document).text());//孙子取父页面的属性

alert($('div',window.parent.parent.document).text());//孙子取爷爷页面的属性

 

alert($('div',window.top.document).text());//孙子取爷爷页面的属性,爷爷是最顶级的页面

 

alert("兄弟节点:"+$('div',window.parent.frames["c1"].document).text());//兄弟页面取出兄弟节点的属性

分享到:
评论

相关推荐

    iframe父页面与子页面通信及相互调用方法

    "iframe父页面与子页面通信及相互调用方法"是一个重要的主题,涉及到跨域安全、DOM操作以及JavaScript/jQuery的交互技术。下面将详细解释这一知识点。 1. **基本概念** - **父页面(Parent Page)**:包含`iframe`...

    iframe子父页面调用js函数示例.docx

    这些方法可以在实际项目中应用,例如在父页面中调用 iframe 子页面的 js 函数来实现某些操作,或者在 iframe 子页面中调用父页面的 js 函数来实现某些操作。 相关知识点 1. iframe 子父页面调用 js 函数的示例 2. ...

    easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值

    假设在父页面上有一个名为`updateParentData`的函数,可以在子页面中这样调用: ```javascript parent.updateParentData('子页面传递的数据'); ``` 接着,我们讨论“子页面给父页面赋值”。当子页面完成了某些操作...

    Jquery调用iframe父页面中的元素及方法

    不过,当iframe和父页面属于同一域时,可以通过JavaScript或jQuery来操作父页面中的元素和方法。本文将详细介绍如何使用jQuery来查找和操作iframe父页面中的元素和方法。 首先,需要明确iframe元素可以被视为一个...

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    父窗口调用iframe子窗口方法

    在Web开发中,"父窗口调用iframe子窗口方法"是一个常见的交互场景,尤其是在构建复杂的单页面应用或者需要跨窗口通信时。这篇文章将详细讲解如何实现这个功能,并提供相关的源码示例。 首先,理解基本概念。`iframe...

    js中iframe调用父页面的方法

    本文实例讲述了js中iframe调用父页面的方法。分享给大家供大家参考。具体实现方法如下: 子页面调用父页面的方法在js中很容易实现。我们只需要在主页面加个函数,然后在子页面通过window.parent.方法()即可实现了 ...

    iframe父页面与子页面互相调用

    本文将通过一个具体的示例介绍如何实现iframe中的父页面与子页面之间的互相调用,以及子页面中再嵌套iframe时的相关操作。 #### 1. 基本概念 首先我们需要了解几个基本的概念: - **父页面(Parent Frame)**:指...

    demo_DEMO_子页面刷新父页面iframe_

    标题“demo_DEMO_子页面刷新父页面iframe_”暗示我们关注的焦点是关于如何在子页面中触发父页面的刷新操作,特别是在一个IFrame上下文中。下面将详细探讨这个主题。 首先,我们需要了解IFrame(内联框架)的基本...

    iframe子父页面调用js函数示例

    在`iframe`子页面中,要调用父页面的JavaScript函数,可以使用`window.parent`对象来引用父窗口。假设父页面有一个名为`a()`的函数,子页面可以这样调用它: ```javascript window.parent.a(); ``` 如果需要获取父...

    jquery、js调用iframe父窗口与子窗口元素的方法整理.docx

    在实际应用中,jquery和js调用iframe父窗口与子窗口元素的方法有很多实例应用。例如,在一个购物网站中, iframe可以用来显示购物车的内容,而父窗口可以用来显示整个网站的导航栏。在这种情况下,需要从iframe中...

    js中iframe调用父页面的方法.docx

    在`iframe`中的页面,可以通过`window.parent`属性来访问父页面的全局对象,从而调用父页面中定义的函数。例如,如果父页面有一个名为`a`的函数,`iframe`中的代码可以这样调用它: ```javascript window.parent...

    frameset父页面和子页面的方法之间调用个属性的调用(页面上可以包含iframe)

    在标题和描述中提到的"frameset父页面和子页面的方法之间调用个属性的调用",涉及到的是跨框架通信的概念。当一个`frameset`中有多个`frame`或`iframe`时,它们之间可能需要进行数据交换或操作交互。这种交互可以...

    iframe跨域调用父窗口js.zip

    在实际应用中,根据项目需求和浏览器兼容性,可以选择合适的方法实现iframe跨域调用父窗口的JavaScript方法。同时,注意安全问题,避免恶意代码通过跨域通信窃取敏感信息。 以上就是关于iframe跨域调用父页面js方法...

    iframe与父页面传值(方法互调)

    而在父页面中,由于`iframe`内容被封装在一个单独的窗口对象中,我们需要先获取到`iframe`的`contentWindow`或`contentDocument`属性,然后才能访问`iframe`中的内容。例如,获取`iframe`内一个名为`iframeFunction`...

    用js互相调用iframe页面内的js函数

    在网页开发中,有时我们需要在一个页面中嵌入另一个页面,这就是`iframe`元素的作用。`iframe`可以让网页在不离开当前页面的情况下加载其他HTML文档,从而实现内容的分块显示或者部分更新。在这个场景下,涉及到的一...

    iframe弹出框遮罩父类页面

    6. **易于使用**:由于描述中提到,所有代码都在子页面内部,这意味着用户只需要在子页面中引入必要的JavaScript和CSS,然后调用相关的函数即可,无需修改父页面的代码,提高了代码的可维护性和复用性。 在提供的`...

    子页面和父页面的相互调用

    在Web开发中,子页面和父页面的交互是常见...在`parent.html`和`childPage.html`中,你可以结合这些技术实现子页面调用父页面的方法,或者父页面向子页面传递数据。记得在实际应用中考虑到安全性、性能和兼容性等问题。

Global site tag (gtag.js) - Google Analytics