0

別のページを iframe に埋め込む Web ページがあります。外側のドキュメントの JavaScript 関数で、iframe 内のドキュメントのサイズ (ピクセル単位) をフェッチする必要があります。

私はDOMと、 iframe自体の高さに関連しwidthて見つけることができる唯一の属性を調査してきました。これは、その中のドキュメントよりも小さいです。height

例えば

<iframe src="tall_page.php" id="my_iframe" style="height: 101px"></iframe>

...

var i = document .getElementById ("my_iframe");
i = i .contentDocument .body;
alert (i .offsetHeight); // or scrollHeight or clientHeight

上記は「101」になります。<body>私がhtml{padding:x}求めている値は、フレームではなく、コンテンツ ドキュメント全体のサイズです。

この値を取得するにはどうすればよいですか?

4

2 に答える 2

0

jQueryを使用すると、これが機能するはずです:

var height = $("my_iframe").height();
var width = $("my_iframe").width();

それが役立つことを願っています

于 2012-10-07T16:34:07.537 に答える
0

contentWindow オブジェクトを使用して動作するようにしました。

ここでのアイデアは、iframe 内に設定した要素の幅/高さを取得することだと思います。私の例では、css を使用して iframe 本体を 3000px に設定し、動作させました。

iframe のデータにアクセスしているため、同じオリジン ポリシーに従う必要があることに注意してください。

これが私の例です:

iframe.html

<!DOCTYPE html>
<html lang='en'>
    <head>
        <title>My Iframe</title>
    </head>
    <body id='mybody' style='width:3000px;'>
        Hello!
    </body>
</html>

index.html

<!DOCTYPE html>

<html lang='en'>
    <head>
        <title>My Test</title>
        <script>
            window.onload = function() {
                var f = document.getElementById('myiframe');
                console.dir(f.contentWindow.document.getElementById('mybody').clientWidth);
            }
        </script>
    </head>
    <body>
        <iframe id='myiframe' src='iframe.html' height='480' width='640'>
        </iframe>
    </body>
</html>

それが役立つことを願っています。

于 2012-10-07T18:00:00.587 に答える