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オブジェクトを返します.

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プログラムの設計に役に立ちます.