本文实例讲述了javascript父子页面通讯的实现方法。分享给大家供大家参考。具体分析如下:
如果一个domain为 www.abc.com的页面内部包含一个name属性值为childFrame的iframe,并且这个iframe的domain为 static.abc.com。那么可以通过设置父页面的domain为abc.com,子页面的domain也为abc.com,然后实现父子页面通讯(我这里有点混淆父子页面和跨域的概念。
不采用上面的方法也是可以实现父子页面相互访问的。 方法是:在父页面用window.frames[0]或者window.frames["childFrame"],返回的是一个Window对象,然后就可以通过:
利用childWindow可以访问执行子页面定义的函数,利用childDoc可以访问子页面的DOM节点。
而子页面要访问父页面,可以通过parent(Window对象),如果一个页面已经是顶级页面那么parent==self将返回true:
当前页面有父页面
// 调用父页面的函数
parent.parentFunc();
var parentDoc = parent.contentDocument || parent.document;
// 访问父页面的DOM节点
}
www.abc.com父页面:
页面
alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);
};
www.static.abc.com子页面:
代码如下:
希望本文所述对大家的javascript程序设计有所帮助。