2012-04-02 9 views
0

ここで問題は明らかです。 Windows XPでは、2つの画素FB.Canvas.setAutoGrow誤って計算するフレームサイズにGoogle Chromeを使用してGoogle Chrome/Windows/FB.Canvas.setAutoGrowの問題

https://www.facebook.com/TabascoUK/app_202624839826809

。私はバグとして報告しますが、(1)同じ設定をしていても、すべてのコンピュータで同じ動作を再現することはできませんでした。 (2)私はall.jsを見てきました。それは大丈夫です - エラーの明白な理由はありません。

キャッシュのリセット、ブラウザの更新などを試みましたが、まだ2pxエラーがあります。

何が原因でしょうか?

+0

私は同じ問題を抱えています。問題を絞り込むことができましたか、おそらくhtmlのエラーですか?または実行可能なソリューションに来ましたか?前もって感謝します。 –

+0

@ChuckMorris新しい答えを見てください。 – Gajus

答えて

1

これが投稿されて以来、私は長い時間をかけていませんでした。しかしチャック・モリスが同じ問題を経験しているようだから、私は自分の経験を共有します。

最初に、私はFB.Canvas.setAutoGrowがコード内のいつでも呼び出すことができるという誤った仮定を持っていました。インターバルを開始するので意味があり、DOMの変化を検出するはずです。まあ、それはまさにそのようなものではありません。

とにかく、DOMがロードされた後にFacebook JSを読み込むのが賢明です。私の経験では、これはすべての不具合を回避するのに役立ちます。 jQueryを使用している場合は、このようなことがあります。

$(function(){ 
    window.fbAsyncInit = function() 
    { 
     FB.init({/*[..]*/}); 

     FB.Canvas.setAutoGrow(91); 
     FB.Canvas.scrollTo(0,0); 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    }(document)); 
}); 
0

ガイ、

は、私は本当にあなたがこの上に、次の感謝、それは私のハック修正より多くのクリーナーですので、私は本当に、あなたの方法は私のセットアップで仕事するつもりだったことを期待していたが、それはまだですiframeを2ピクセル誤算する。とにかく、誰かがこの問題に遭遇した場合、私はちょうどその時のことでした。

window.fbAsyncInit = function() { 
    FB.init({/*[..]*/}); 


    // Additional initialization code here 
    FB.Canvas.setAutoGrow(91); 
    FB.Canvas.scrollTo(0,0); 

    //FB.Canvas.setAutoGrow is miscalculating the height by 2 pixels in webkit browsers 
    //so we shorten the content by 2 pixels right away, and a second later if things were a little too slow 
    window.setTimeout(function() { 
     $("#footer").css("height", "74px"); 
    }, 250); 
    window.setTimeout(function() { 
     $("#footer").css("height", "72px"); 
    }, 1000); 
    }; 
+0

この回答は理にかなっていません。最悪の場合、 'FB.Canvas.setSize();'(http://developers.facebook.com/docs/reference/javascript/FB.Canvas.setSize/)を使用してウィンドウフレームを任意のものに設定することができますコンテンツをトリミングするのではなく、 – Gajus

0

私は同じ問題を持っていた私は、私が

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 

を追加しました。しかし、クロムにあなたはいつもクロームでは動作しない、次のよう

<script type="text/javascript" src="https://connect.facebook.net/en_US/all.js"></script> 

によって異なるプロトコルを追加する必要がありましたましたhttps

または最善の方法を使用してください可能性があります

<script type="text/javascript" src="//connect.facebook.net/en_US/all.js"></script> 
関連する問題