FancyBox2でiframeの高さを変更しても問題が残っています。 私は私の親でこれを呼び出しています:Fancybox iframe dynamic resize
$(document).ready(function() {
$('.fancybox').fancybox();
$('.showframe').fancybox({
openEffect : 'elastic',
closeEffect : 'elastic',
beforeShow: function(){
this.width = ($('.fancybox-iframe').contents().find('body').width());
this.height = ($('.fancybox-iframe').contents().find('body').height());
},
afterClose : function() {
location.reload();
return;
},
onUpdate : { autoHeight: true},
helpers : {
overlay : {closeClick: false}
}
});
});
とiframeが開かれたが、iframe内に、私は、ユーザーが画像をアップロードし、アップロードした画像のプレビューを表示することができますスクリプトを持っているので、ときに正しく動作しますiframeの高さは(アップロードされた写真の数によって)変化しますが、FancyBoxは「高さのサイズを変更しません」。私はサイズ変更をトリガするために、私の「子」のiframeでこれを使用しています:ChromeとIEの代わりにiframeの高さをリサイズのスクロールバーが表示されますながら
...some functions here that handle image upload and image display...
parent.$.fancybox.scrollBox();
は今、これはFirefoxでのみ動作します。このクロスブラウザを互換にする方法はありますか?
EDIT:
parent.$('.fancybox-inner').height($('#wrap').height()+20);
が、問題はインラインフレームを中央(それだけの高さにサイズが変更されますされませんが、画面上の中央を再ではないということです。私はすべてのブラウザで動作するように、このコードを取得)。私はparent.$.fancybox.center();
とparent.$.fancybox.reize();
とparent.$.fancybox.update();
を試してみましたが、それはFirefoxでは動作しません。
私は、これは実際にすべてのブラウザ(IE8でも)で動作していること(純粋な運で)見つけた:
parent.$('.fancybox-inner').height($('#wrap').height()+30);
parent.$.fancybox.reposition();
試し(子ページ内)メソッド '親を呼ぶ$ fancybox.update()'サイズの後に変更されました。また、 'onUpdate'の形式は' onUpdate:function(){...} 'でなければなりません。 'this.height = $( 'fancybox-iframe')。contents()。find( 'body')。innerHeight();' – JFK