0

ファンシーボックスのiframeとしてページがロードされるファンシーボックス2を使用して、Facebookページでアプリケーションを作成しようとしています。IE を除いて、すべて正常に動作します (誰が知っていたでしょう!)。

ファンシーボックス 2 には、フォームを送信して別のページに移動するボタンがあります。このページは、前のページと同じファンシーボックス ウィンドウに読み込まれます。このページが読み込まれると、fancybox の高さが適切に調整されないため、ページの半分が表示されません。

私が今やろうとしているのは、fancybox iframe の高さを変更することですが、iframe の実際のサイズを取得することにすでに行き詰まっています。

ファンシーボックスのiframeにロードされた最後のページの私のJavaScriptコードは次のとおりです。

$(document).ready(function() {
    var inner = $('.fancybox-inner');
    console.log(inner);
});

この console.log は「null」を返します。これは、このクラスがページに存在しないことを示しています。私も次のことを試しました:

parent.$('.fancybox-inner');
parent.$('.fancybox-iframe');
$('.fancybox-iframe');
$.fancybox;
parent.fancybox;

ファンシーボックスの負荷:

$(document).ready(function() {
$(".uploadbox").fancybox({
    scrolling : 'no',
    preload   : true,
    type      : 'iframe',
    width     : '623px',
    height    : 'auto',
    autoSize  : true,
    afterLoad : function () { $.fancybox.update(); }, //this does not work
    closeBtn  : false,
        closeClick  : false,
        helpers     : { 
            overlay : {closeClick: false}
        }
    });
});

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

4

2 に答える 2

1

私はこの問題を解決することができませんでした。その理由を説明します。

Facebook ページは、iframe を使用して Web サイトを Web サイトに表示します。fancybox 2 に別のページを表示するには、iframe も使用する必要があります。iframe 内の iframe は常に問題を引き起こしているため (クロス ブラウザーなど)、iframe が 2 つあるため、親ウィンドウにファンシー ボックスの高さを与える方法がありませんでした。アプリを稼働させる必要があったため、静的な高さを指定することにしました。将来、私はもう Fancybox 2 を使用することはありません。それは、Facebook 内の大きな不幸の 1 つにすぎません。

于 2013-04-22T11:09:52.157 に答える
-1

parent.jQuery.fancybox.resize(); が必要です。または window.parent.jQuery.fancybox.resize();

私の記憶が正しければ、彼らのサイトにはまさにこの問題に関する仕様がありました。

于 2013-04-12T20:44:40.517 に答える