javascript親子ページ通信例の詳細
1581 ワード
本論文の実例は、javascript親子ページ通信の実現方法を述べている.皆さんの参考にしてください.具体的な分析は以下の通りです.
一つのdomainがwww.abc.comのページ内に一つのname属性値を含むなら、childFrameのiframeであり、このiframeのdomainはstatic.abc.comである.親ページのdomainをabc.comとし、サブページのdomainをabc.comとして設定し、親子ページ通信を実現します.
上記の方法を採用しないのも親子ページの相互アクセスが可能です.方法は、親ページでwindow.frame[0]またはwindow.frame["child Frame"]を使って、Windowオブジェクトを返します.
子ページは親ページにアクセスします.parent(Windowオブジェクト)を通じて、ページが既にトップページである場合、parent==selfはtrueに戻ります.
一つのdomainがwww.abc.comのページ内に一つのname属性値を含むなら、childFrameのiframeであり、このiframeのdomainはstatic.abc.comである.親ページのdomainをabc.comとし、サブページのdomainをabc.comとして設定し、親子ページ通信を実現します.
上記の方法を採用しないのも親子ページの相互アクセスが可能です.方法は、親ページでwindow.frame[0]またはwindow.frame["child Frame"]を使って、Windowオブジェクトを返します.
var childWindow = window.frames[0];
// window.frames["childFrame"] childFrame childFrame.window
var childDoc = childWindow.contentDocument || childWindow.document;
childWindowを利用して、サブページ定義を実行する関数にアクセスでき、child Docを利用してサブページのDOMノードにアクセスできます.子ページは親ページにアクセスします.parent(Windowオブジェクト)を通じて、ページが既にトップページである場合、parent==selfはtrueに戻ります.
if(parent != self) {
//
//
parent.parentFunc();
var parentDoc = parent.contentDocument || parent.document;
// DOM
}
www.abc.com親ページ:
document.domain = 'abc.com';
var ifr = document.createElement('iframe');
ifr.src = 'http://static.abc.com/';
ifr.style.display = 'none';
document.body.appendChild(ifr);
ifr.onload = function(){
var doc = ifr.contentDocument || ifr.contentWindow.document;
//
alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);
};
wwww.static.abc.com子ページ:
document.domain = 'abc.com';
本論文で述べたように、皆さんのjavascriptプログラムの設計に役に立ちます.