0

こんにちは、私たちの音楽サークルのウェブサイトにフォト ギャラリーを追加しようとしています。iframe のサブディレクトリ 'media' からページを開く php ページがあります。StackOverflow の質問 9162933 で、iframe のサイズを動的に変更する方法を見つけました (BlueFish に感謝します!)。

奇妙なことに、「数ピクセル」はブラウザーごとに異なります。テスト目的で、PHP にパラメーター「パディング」を追加しました。たとえば、 http://maladrerie.heliohost.org/mkh/mediapag.php?item= 2013_01_17_1 &padding=15を呼び出すと、 http://maladrerie が呼び出されます。 heliohost.org/mkh/media/2013_01_17_1.htmlに 15px のパディングがあります。パディングのデフォルトは 35px で、左側のサイドバーに表示されます。

関連する PHP コードは次のとおりです。

<?php if ( isset ($_GET["item"]) ) {
    $item = "media/" . $_GET["item"] . ".html" ;
} else {
    $item="media/lijst.html" ;
}
   if ( isset ($_GET["padding"]) ) {
        $padding = $_GET["padding"] ;
} else {
        $padding = 35 ;
}
?>

iframe の呼び出し行は次のとおりです。

<iframe class="mediaframe" onload="resizeIframe(this)" frameborder="no" src="<?php print($item) ; ?>" > </iframe>

JavaScriptは次のとおりです。

<script type="text/javascript">
  function resizeIframe(iframe) {
    iframe.height = (iframe.contentWindow.document.body.scrollHeight + <?php print($padding) ; ?>) + "px";
  }
</script>

Safari と Chrome にはパディングは必要ありません (padding=0)。Firefox、Opera、IE8、および IE10 では 16 のパディングが必要です。IE7 には 30 のパディングが必要です (私のテスト マシンには IE9 がありません)。

これをどのように処理すべきか提案はありますか? このサイトはオランダ語ですが、メニューで「Foto's en Geluid」を選択すれば一目瞭然です。

どんな助けでも大歓迎です。

--- デレク

4

0 に答える 0