OK、Facebookのjavascrip sdkがFB.Canvas.setSize()を呼び出して、高さが「Settable」に設定されたiframeキャンバスアプリがあります。およびFB.Canvas.setAutoGrow(); 。iframeはコンテンツに基づいて特定のピクセルの高さに設定されるため、これらは完全に機能しています。
問題は、Fancyboxに電話をかけると、この高さに基づいて自分自身が配置されることです。fancybox jQueryがビューポートを次のように返すので、それがまさにそのようになっていることを私は知っています。
(最新バージョンのjquery.fancybox-1.3.4.jsの673行目):
_get_viewport = function() {
return [
$(window).width() - (currentOpts.margin * 2),
$(window).height() - (currentOpts.margin * 2),
$(document).scrollTop() + currentOpts.margin
];
},
ただし、問題は、多くの視聴者にとって、iframeがブラウザウィンドウよりも長くなることです。そのため、Fancyboxはiframeの中央に配置され、大多数の視聴者に部分的にしか表示されなくなります。(つまり、iframeの高さは1058ピクセルで、ユーザーのブラウザは650ピクセルとしか言いません)。
fancyboxに物理的なブラウザの高さを計算させる方法はありますか?または、Facebookキャンバスアプリを機能させるためにいくつかの設定を変更する必要がありますか?
Facebookのスクロールバー(親)だけが好きです。
すべての提案は大歓迎です!