簡體   English   中英

facebook javascript SDK:FB.Canvas.setAutoResize iFrame不能正常工作?

[英]facebook javascript SDK: FB.Canvas.setAutoResize iFrame not working?

我們使用ruby / rails和facebooker(iframe應用程序)構建了一個facebook應用程序,目前仍然使用FB.Canvas.setAutoResize,在某些情況下似乎失敗了。 使用來自facebook developer docs的示例(請參閱http://developers.facebook.com/docs/reference/javascript/ )。 一旦你進入一個高於800px的頁面,autoresize就會失敗 - 所以說,只要畫布變大,它就會起作用,而不是當它變小時。 任何人都有線索或解決方法嗎?

這是調整大小的代碼片段

<div id="fb-root" style="width:1px;height:1px;position:absolute;"></div> 
<script type="text/javascript"> 
  window.fbAsyncInit = function() {
    FB.init({appId: '126342024064822', status: true, cookie: true, xfbml: true});
    FB.Canvas.setAutoResize(true,100);
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

我非常感謝任何評論或提示,因為我現在已經超過一天了。

要確保的一些關鍵事項在應用程序設置中設置:

  1. 畫布設置 - >渲染方法= iFrame
  2. 畫布設置 - > iFrame Size =可調整大小
  3. 遷移 - >新SDK =已啟用

接下來通過添加超時來調整代碼(250似乎效果最好,但您可能想要進行實驗)。 我在FF3.6和IE7 +中測試了這個。 在IE中,有一個垂直滾動條的瞬間閃爍,我仍然試圖修復。

<div id="fb-root"></div> 
<script type="text/javascript"> 
  window.fbAsyncInit = function() {
    FB.init({appId: '12345678910', status: true, cookie: true, xfbml: true});
  window.setTimeout(function() {
    FB.Canvas.setAutoResize();
  }, 250);
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

解決方案很簡單! 除了放FB.Canvas.setAutoResize()
你必須改變你的身體樣式=“溢出:隱藏”

這個對我有用! 現在ie8還可以!!

我還想指出,你確實需要你的

<div id="fb-root">

為此工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM