2011-10-24 127 views
2

我已經構建了一個應用程序用作頁面中的選項卡。
由於其內容太長,我需要設置iframe的高度,所以沒有滾動條。
我的問題是,它在chrome &中正常工作,例如,但不是在Firefox中。
這裏是我做了什麼:Facebook選項卡應用程序畫布高度 - Firefox的問題

<?php 
    $signed_request = $_REQUEST["signed_request"]; 
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
?> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

    <style type="text/css"> 
     * { 
      padding:0; margin:0; border: none; outline:none 
     } 
    </style> 

</head> 
<body style="width:520px; overflow:hidden"> 
<?php 
    if (empty($data["page"]["liked"])) { 
     echo "<img src=\"img/blur.jpg\" />"; 
    } 
    else { 
     echo "<img src=\"img/fan.jpg\" />"; 
    } 
?> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : 'xxx_app_id', 
    status : true, 
    cookie : true, 
    xfbml : true 
}); 
</script> 
<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.Canvas.setSize({ width: 520, height: 3591 }); 
    } 
    function sizeChangeCallback() { 
     FB.Canvas.setSize({ width: 520, height: 3591 }); 
    } 
</script> 
</body> 
</html> 

而且,我已經做了完全一樣的應用3-4次和它的工作,所以現在我只是改變要顯示的圖像。
尋找螢火蟲控制檯,我看到沒有錯誤,並檢查應用的CSS(從螢火蟲再次),我看到的iframe 800px的高度。

回答

1

好吧,顯然fbAsyncInit從未叫,所以我通過手動調用方法這樣解決了該問題:

<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.Canvas.setSize({ width: 520, height: 3591 }); 
    } 
    function sizeChangeCallback() { 
     FB.Canvas.setSize({ width: 520, height: 3591 }); 
    } 
    window.fbAsyncInit(); 
</script> 

現在一切工作正常。
如果任何人有任何線索,爲什麼這隻發生在ff中,並且只發生在這個應用程序中(正如我在問題中所說的,我已經構建了3-4次的確切應用程序 - 只有不同的圖像和文本),我會感激在此共享...

+1

另請參閱http://stackoverflow.com/questions/5316478/facebook-tab-height-scroll-bar/7812412#7812412 –

相關問題