1
<iframe id="frame1" name="frame1" width="200" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://localhost/Widget/"></iframe>

http://localhost/Widget/JavaScriptを使用して、ページからこのiframeの高さを見つけたいです。

そうする方法はありますか?前もって感謝します。

4

4 に答える 4

2

私は自分のソリューションで問題について別の方法をとっています: iframe 内では:

<body onload="parent.setsize(document.body.scrollHeight);">

親にはjs関数があります:

function setsize(pixels){ 
if(navigator.appName=="Microsoft Internet Explorer") pixels+=40;
if (navigator.userAgent.indexOf("Firefox")!=-1) pixels+=40;
document.getElementById('produktet').style.height=pixels+"px";

ご覧のとおり、iframe コンテンツの合計の高さは次のとおりです: document.body.scrollHeight

于 2012-12-18T11:41:57.180 に答える
1

クロスオリジンの問題を回避するため。本体がロードされる前に高さを読み取ることができます。

<html>
  <head>
    <script>
        var iframeSize = Math.max( document.documentElement.clientHeight,
                                   document.documentElement.scrollHeight,
                                   document.documentElement.offsetHeight );
    </script> 
  </head>
<body>
  ...
于 2014-11-27T17:18:15.110 に答える
1

そのためには、最初に「親」を取得する必要があります。で親を取得できるdocument.parentため、次のように動作するはずです (テストされていません)。

parent.getElementById( 'frame1' ).getAttribute( 'height' );

親に jQuery をロードした場合は、それを使用できます。

parent.jQuery('#frame1').attr('height');

編集: ただし、ここではセキュリティ上の制限があることに注意してください。これが機能するには、両方のページが同じドメインにある必要があります。

于 2012-12-18T11:02:47.917 に答える
0
$('#frame1').attr('height');

jQueryを使用。または

document.getElementbyId('frame1').getAttribute('height');

プレーンjsで。

于 2012-12-18T11:00:12.527 に答える