0

ページに 2 つの Iframe があります。1 つはナビゲーションと呼ばれ、もう 1 つはコンテンツと呼ばれます。Iframe の読み込み時に、次の関数を呼び出します。

function resizeIframe(obj) {
  if (obj.contentWindow != undefined && obj.contentWindow != null && obj.contentWindow.document != undefined && obj.contentWindow.document != null) {
  obj.style.height = obj.contentWindow.document.body.scrollHeight + 20 + 'px';
  obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';
  }
}

そして、私はこのようにIframeで上記の関数を呼び出します

   <iframe src="Taxonomy.htm" name="navigation" id="navigation" width="250" height="900" seamless="true" onload="resizeIframe(this)"></iframe>         
   <div id="divContent"><script>
   document.write('<iframe src="' + newPath + '" id="content" name="content" width="700"   height="900" seamless="true" onload="javascript:resizeIframe(this)">');
   document.write('</iframe>');  
   </script></div>

doContentLoad()そして、ナビゲーションのリンクがクリックされたときに呼び出される別の関数を呼び出しIframe、関数は次のようになります。

function doContentLoad() {
      var navFrameElem = indow.parent.document.getElementById("navigation").contentWindow  || window.parent.document.getElementById("navigation").contentDocument;
      if (navFrameElem != null && navFrameElem.document) 
           navFrameElem = navFrameElem.document;
      if (navFrameElem != null) {
        if (navFrameElem.body.scrollHeight > 900) {                window.parent.document.getElementById("navigation").parentNode.parentNode.style.height = navFrameElem.body.scrollHeight + 130 + 'px';
          window.parent.document.getElementById("navigation").style.height = navFrameElem.body.scrollHeight + 130 + 'px';
          navFrameElem.body.style.height = navFrameElem.body.scrollHeight + 'px';
        }
    }

    var contentFrameElem = window.parent.document.getElementById("content").contentWindow || window.parent.document.getElementById("content").contentDocument;
    if (contentFrameElem != null && contentFrameElem.document != null &&  contentFrameElem.document) contentFrameElem = contentFrameElem.document;               window.parent.document.getElementById("content").style.height = contentFrameElem.body.scrollHeight + 30 + 'px';   
     }

Firefox : Error: Permission denied to access property 'document'両方の関数で次のエラーが発生します。

IE I get: invalid calling object.

ここでドキュメントオブジェクトを取得するにはどうすればよいですか? またはサイズを変更する方が良いIframesですか?

4

1 に答える 1

1

HTML ページではなく PDF を含めるため、iframe contentWindow には DOM がないため、JavaScript は iFrame のプロパティにアクセスできません。

于 2014-03-12T21:07:19.187 に答える