1

ファンシーボックスの寸法を「手動で作成された」iframeのコンテンツサイズと一致させたい。

私はこれを試しました:http://jsfiddle.net/ystLD/3/

しかし、それは機能せず、今はここで立ち往生しています。

誰もこれを行う方法を知っていますか?

ありがとう。

4

2 に答える 2

5

「手動で作成された」iframeには、fancybox が実際に何typeのコンテンツを扱っているかを知らないという欠点があります。オプションで fancybox を開きたいと思いますtype: "iframe"

次に、の内容に応じて fancybox のサイズを変更できると私が考える唯一の方法は、iframe内で開いたページ内の寸法を 、または のようなラッパーコンテナでハードコーディングiframeすることhtmlですbody

<html style="width: 800px; height: 650px;">

次に、コールバックを使用して、次のようなbeforeShow寸法を取得できますiframe

  beforeShow: function(){
   this.width = $('.fancybox-iframe').contents().find('html').width();
   this.height = $('.fancybox-iframe').contents().find('html').height();
  }

開いているページを所有しておらず、そのサイズをハードコーディングできない場合でも、orタグのinnerWidth()andを取得することはできますが、このフォークされたフィドルでわかるように、非常にバグがある可能性があります。innerHeight()htmlbody

これが他の誰かのために働いた答えですhttps://stackoverflow.com/a/10776520/1055987

于 2012-08-30T07:50:00.010 に答える
0

とにかく手動で作成しているので、iframeの属性に幅と高さを付けることができます。

.attr({ name: 'blah', width: '500px', height: '500px' })

フェッチしているページのサイズと正確に一致するものが必要な場合、iframe はブラウザー ウィンドウを開くのとほとんど同じであるため、かなり面倒な作業です。構造を分析して、最も広い div のサイズなどをプログラムで決定する必要があります。また、ページがレスポンシブ レイアウトを使用しているかどうかを判断し、そのために特定のサイズを使用する必要があります。

于 2012-08-30T06:10:24.313 に答える