最初に、「Fancybox iFrame」と言うときの意味を理解していただければ幸いです。これは、fancybox のオプションを使用して外部の html/php ファイルを開くことを意味しiframe
ますclass
。
<a href="external.html" class="fancybox fancybox.iframe">open external file in fancybox</a>
(スクリプトのオプションのため、fancybox v2.xを使用していると思います)...またはカスタムスクリプト内のオプションとして:
$(".fancybox").fancybox({
width: 620, // or whatever
heigh: 320,
type: "iframe"
});
v1.3.x
第二に、fancybox のオプションとv2.x
相互に互換性がないことに注意する必要があります。たとえば、スクリプトfitToView
(fancybox v2.x) およびautoScale
(v1.3.x) で使用しています。ファンシーボックス v2.x を実際に使用している場合、autoScale
認識されません。
第三に、resize()
fancybox v1.3.x または v2.x のオプションではありません。v2.x を使用している場合は、代わりに$.fancybox.update()
iframe
最後に、モードで開いたときにfancyboxのサイズを「自動」変更する唯一の可能な(「最も簡単な」と言うべき)方法は次のとおりです。
external.html
開きたいページを制御する必要があります (それを所有し、最終的に同じドメイン内で実行する必要があります)。そのため、fancybox がサイズ変更するために必要な要素を追加できます。あなたのものではない他のページ(picssel.com
たとえば)では、iframeを自動的に自動サイズ変更することはできません(手動でサイズを変更することはできますが、それは考えではありません。)
- 少なくとも 2.0.6 以降の fancybox を使用する必要があります
方法?
ファイルを編集して、次のようなタグexternal.html
に寸法を設定します<html>
<html lang="en" style="width: 800px; height: 400px;">
height
(ただし、プロパティのみを割り当てたい場合があります)
次に、コールバック オプションを使用して、次のようなbeforeShow
次元を取得します。iframe
beforeShow: function(){
this.width = $('.fancybox-iframe').contents().find('html').width();
this.height = $('.fancybox-iframe').contents().find('html').height();
}
また、fitToView
に設定する必要がありますfalse
サンプル コードについては、https://stackoverflow.com/a/10776520/1055987を確認してください。DEMO も含まれています。