2011-06-20 38 views
0

我已經開發了PHP的Facebook應用程序登錄對話框(不關閉)。它在IE8以外的所有瀏覽器上工作正常。Facebook連接/圖 - 在Internet Explorer中使用FB的問題:

在頭
<script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId : '<?php echo $facebook->getAppId(); ?>', 
      session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true // parse XFBML 
     }); 

     // whenever the user logs in, we refresh the page 
     FB.Event.subscribe('auth.login', function() { 
      window.location.reload(); 
     }); 
     }; 

     (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 

的我已經寫

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 

http://static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=fcd4e0bda699ab&origin=http%3A%2F%2Ffunkyhousemusic.com.au%2Ff2a3a0d311c1622&relation=opener&transport=flash&frame=f11105d2b30fcb8&result=%7B%22perms%22%3A%22publish_stream%22%2C%22selected_profiles%22%3A100001565152261%2C%22session%22%3A%22%7B%5C%22session_key%5C%22%3A%5C%222.AQCSnIWiw1JjiNd1.3600.1308553200.1-100001565152261%5C%22%2C%5C%22uid%5C%22%3A%5C%22100001565152261%5C%22%2C%5C%22expires%5C%22%3A1308553200%2C%5C%22secret%5C%22%3A%5C%227vpbXmKCQvEOb_tVEdBXpA__%5C%22%2C%5C%22base_domain%5C%22%3A%5C%22funkyhousemusic.com.au%5C%22%2C%5C%22access_token%5C%22%3A%5C%22161903587201698%7C2.AQCSnIWiw1JjiNd1.3600.1308553200.1-100001565152261%7CfW98-D_hw--lS8NdRCxdU51N-eA%5C%22%2C%5C%22sig%5C%22%3A%5C%22766d1359acfdb68b0226c6187413b05f%5C%22%7D%22%7D 

任何幫助將最近appriciated

回答

2

我的Facebook登錄按鈕停止IE8工作作爲顯示彈出好。該按鈕以前工作,所以我認爲Facebook可能最近更新了他們的SDK與一些打破他們以前的問題修復(我看到類似的報告可以追溯到3年)。

從別人沒有嘗試了很多的建議後,除了工作之一,並使用自定義頻道網址將它添加到您的FB.init功能了。在文檔中,他們給出的使用原因不包括這個特定的問題,但是使用它對我來說確實有效。該FB.init文檔可以在這裏找到:

https://developers.facebook.com/docs/reference/javascript/FB.init/

基本上所有你需要做的就是在你的FB.init功能添加到channel.html文件的引用。

FB.init({ 
     appId : 'YOURAPPID', 
     status : true, 
     cookie : true, 
     xfbml : true, 
     channelUrl : document.location.protocol + '//YOURDOMAIN/channel.html', 
     }); 

然後創建在您指定的位置channel.html文件(不必是頂層文件夾,「//domain/some_path/channel.html」將工作太)和內該文件只有這一行。

<script src="//connect.facebook.net/en_US/all.js"></script> 
+0

你救了我的一天!該頁面在IE7上不斷刷新,但現在它已修復。 :D – RobinBrouwer

+0

只需添加到此 - 您可以將.html文件中的腳本標記更改爲'以便不必在channel.html文件中做任何「服務器端的東西」。 – technophile

+0

謝謝@technophile,這確實使它更容易。我用這個補充更新了我的答案。 – Pwntifex