2016-11-28 23 views
0

スクロールが起こるまで(コンテンツの高さ全体)の画面全体を取得しようとしていますが、ここでは試したコードがありますが、例えばのために、私の推測では、画面全体の高さはインラインフレームコンテンツの高さは、親div要素ではなくIFRAMEのとは関係ありませんので、あなたがheight = 0を取得し、正確な高さiframeまたは外部divからスクロールの高さを取得する方法

<div id="sample"> 
    <iframe src="https://en.wikipedia.org/wiki/Main_Page" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0x;left:0px;right:0px;bottom:0px" height="100%" width="100%" allowfullscreen id="frame" onload="myFunction()"> 
    </iframe> 
    <div style="display:block; clear:both;"></div> 
</div> 


    <script> 
    function myFunction() { 
     var elmnt = document.getElementById("sample"); 
     var y = elmnt.scrollHeight; 
     var x = elmnt.scrollWidth; 
     var sample = "Height: " + y + "px<br>Width: " + x + "px"; 
     alert(sample); 
    } 
    </script> 

答えて

1

を取得する方法をもっとし1400px になりますですドキュメントオブジェクトにアクセスするため、ドキュメントオブジェクトにアクセスする必要があります。

function myFunction() { 
     var elmnt = document.getElementById("frame"); 
     var win = elmnt.contentWindow; 
     var x = win.innerWidth; 
     var y = win.innerHeight; 
     var iframe = "Height: " + y + "px<br>Width: " + x + "px"; 
     alert(iframe); 
} 

しかし、これは理由same-origin policyで動作しない、とあなたは次のエラーが発生します。

Error: Permission denied to access property "innerWidth" 

info on this errorより多くのためにMDNを確認してください。

DOMにアクセスするには、phantomjs(Node.jsベース)のようなヘッドレスブラウザを使用してページを解析する必要があります。これはサーバーサイドで行う必要があります。あなたがしようとする場合は、examplesの多くを見つけることができます。

関連する問題