2010-03-25 18 views
5

में दिखाई नहीं दे रहा है, मैं फेसबुक कनेक्ट का उपयोग कर रहे किसी साइट पर काम कर रहा हूं और हाल ही में कुछ बदलाव किए हैं ताकि मुख्य पृष्ठ कैश किए गए हों और यदि आप लॉग इन नहीं हैं (AJAX के साथ चेक किया गया है कॉल करें) यह फेसबुक कनेक्ट जावास्क्रिप्ट लोड करता है और पेज में कनेक्ट बटन प्रस्तुत करता है। यह इंटरनेट एक्सप्लोरर 7 और 8 को छोड़कर पूरी तरह से काम करता है। अजीब हिस्सा यह है कि मैं बटन को एक छिपे हुए साइन अप/साइन इन फॉर्म में प्रस्तुत करता हूं और जब आप कनेक्ट बटन दिखाई देते हैं तो उनमें से कोई भी दिखाता है। आप here देख सकते हैं और आप फ़ायरफ़ॉक्स में बटन देखेंगे और इंटरनेट एक्सप्लोरर नहीं देखेंगे। यदि आप साइन इन बटन पर क्लिक करेंगे तो दिखाई देगा।फेसबुक कनेक्ट आइकन इंटरनेट एक्सप्लोरर

यह एक रेल एप्लिकेशन तो सर्वर साइड हम इस तरह एक ajax कॉल का जवाब कर रहे हैं आर.जे. साथ पर है:

page['signin-status'].replace(:partial => "common/layout/signin_menu") 

    page.select('.facebook-connect').each do |value, index| 
    value.replace(render(:partial => '/facebook/signin')) 
    end 

    page << <<-eos 
    LazyLoader.load('http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php', function(){ 
    FB.init('#{Facebooker.api_key}','/xd_receiver.html'); 
    }); 
eos 

पहली पंक्ति शीर्ष लेख को बदल रहा है, दूसरी बार में कनेक्ट बटन है मॉडल संवाद। आंशिक जा रहा हैडर में प्रदान की गई इस तरह दिखता है:

<span id='signin-status'> 
    <%= fb_login_button(remote_function(:url => "/facebook/connect"))%> | 
    <%= link_to_function "Sign In", "showSignInForm();", :id => "signin" %> | 
    <%= link_to_function "Sign Up", "showSignUpForm();", :id => "signup" %> 
</span> 

आंशिक जा रहा मोडल संवाद में प्रदान की गई इस तरह दिखता है:

<div class='facebook-connect'> 
    <div id="FB_HiddenContainer" style="position:absolute; top:-10000px; width:0px; height:0px;" ></div> 
    <label>Or sign in with your Facebook account</label> 
    <%= fb_login_button(remote_function(:url => "/facebook/connect"))%> 
    </div> 

मैं इसे बहुत ही अजीब लगता है कि मॉडल संवाद दिखा कारण बनता है सब दिखाने के लिए प्रतीक। क्या किसी के पास क्या हो रहा है इसके बारे में कोई विचार या सुझाव है?

+0

आप अपने स्वयं के उत्तर को स्वीकार करने के रूप में चिह्नित करना चाहते हैं। – corprew

उत्तर

1

यह पता चला कि मेरे पास पृष्ठ में आईडी FB_HiddenContainer आईडी के साथ दो divs थे और इससे समस्या उत्पन्न हो रही थी। डुप्लिकेट div को सब कुछ ठीक कर रहा है।

+1

अरे आदमी, +0 बक्षीस –

0

कठिन एक। यह कोई जवाब नहीं है, और आप पहले से ही यह सब जानते हैं, लेकिन शायद यह आपको कुछ अंतर्दृष्टि देगा। यहाँ है कि मतभेद के एक जोड़े

<DIV class=facebook-connect> 
     <DIV style="POSITION: absolute; WIDTH: 0px; HEIGHT: 0px; TOP: -10000px" id=FB_HiddenContainer> 
     <DIV> 
      <IFRAME class=FB_SERVER_IFRAME src="http://www.facebook.com/extern/login_status.php?api_key=f3da6164fa3c312672cf5a24a53345e0&extern=2&channel=http%3A%2F%2Fplay.inspire2go.com%2Fxd_receiver.html&locale=en_US" frameBorder=0 name=loginStatus scrolling=no></IFRAME> 
     </DIV> 
     <DIV> 
      <OBJECT id=flashXdComm name=flashXdComm classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000 width=1 height=1 type=application/x-shockwave-flash> 
      <PARAM NAME="_cx" VALUE="26"> 
      <PARAM NAME="_cy" VALUE="26"> 
      <PARAM NAME="FlashVars" VALUE=""> 
      <PARAM NAME="Movie" VALUE="http://static.ak.fbcdn.net/rsrc.php/z9W3G/hash/b0l9i5c3.swf"> 
      <PARAM NAME="Src" VALUE="http://static.ak.fbcdn.net/rsrc.php/z9W3G/hash/b0l9i5c3.swf"> 
      <PARAM NAME="WMode" VALUE="Window"> 
      <PARAM NAME="Play" VALUE="-1"> 
      <PARAM NAME="Loop" VALUE="-1"> 
      <PARAM NAME="Quality" VALUE="High"> 
      <PARAM NAME="SAlign" VALUE=""> 
      <PARAM NAME="Menu" VALUE="-1"> 
      <PARAM NAME="Base" VALUE=""> 
      <PARAM NAME="AllowScriptAccess" VALUE="always"> 
      <PARAM NAME="Scale" VALUE="ShowAll"> 
      <PARAM NAME="DeviceFont" VALUE="0"> 
      <PARAM NAME="EmbedMovie" VALUE="0"> 
      <PARAM NAME="BGColor" VALUE="869CA7"> 
      <PARAM NAME="SWRemote" VALUE=""> 
      <PARAM NAME="MovieData" VALUE=""> 
      <PARAM NAME="SeamlessTabbing" VALUE="1"> 
      <PARAM NAME="Profile" VALUE="0"> 
      <PARAM NAME="ProfileAddress" VALUE=""> 
      <PARAM NAME="ProfilePort" VALUE="0"> 
      <PARAM NAME="AllowNetworking" VALUE="all"> 
      <PARAM NAME="AllowFullScreen" VALUE="false"> 
      </OBJECT> 
     </DIV> 
     </DIV> 
     <LABEL>Or sign in with your Facebook account</LABEL> 
     <?xml:namespace prefix = fb /> 
     <fb:login-button onlogin="new Ajax.Request('/facebook/connect', {asynchronous:true, evalScripts:true})"></fb:login-button> 
    </DIV> 

नोट: फ़ायरफ़ॉक्स में कोड के लिए उत्पन्न स्रोत इस तरह दिखता है:

<div class="facebook-connect"> 
     <div id="FB_HiddenContainer" style="position: absolute; top: -10000px; width: 0px; height: 0px;"> 
     <div> 
      <iframe name="fb_api_server" src="http://api.connect.facebook.com/static/v0.4/client_restserver.php?r=223617" class="FB_SERVER_IFRAME" frameborder="0" scrolling="no"></iframe> 
     </div> 
     <div> 
      <iframe name="loginStatus" src="http://www.facebook.com/extern/login_status.php?api_key=f3da6164fa3c312672cf5a24a53345e0&amp;extern=2&amp;channel=http%3A%2F%2Fplay.inspire2go.com%2Fxd_receiver.html&amp;locale=en_US" class="FB_SERVER_IFRAME" frameborder="0" scrolling="no"></iframe> 
     </div> 
     </div> 
     <label>Or sign in with your Facebook account</label> 
     <fb:login-button class=" fb_login_not_logged_in FB_login_button FB_ElementReady" onlogin="new Ajax.Request('/facebook/connect', {asynchronous:true, evalScripts:true})"><a id="RES_ID_fb_login" class="fbconnect_login_button"><img alt="Connect" src="http://static.ak.fbcdn.net/rsrc.php/zEYEC/hash/7e3mp7ee.png" id="RES_ID_fb_login_image"></a></fb:login-button> 
    </div> 

हालांकि, IE8 में तैयार किए गए कोड इस तरह दिखता है। सबसे पहले, <fb:login-button> तत्व अलग है। जैसा कि हम जानते हैं, लॉगिन पीएनजी फ़ाइल का संदर्भ आईई 8 में गायब है। इसके अलावा, फ़ायरफ़ॉक्स में, दो तत्व हैं, हालांकि, IE8 में, दूसरा एक फ्लैश ऑब्जेक्ट के साथ प्रतिस्थापित किया गया है।

ऐसा प्रतीत होता है कि आपके LazyLoader() फ़ंक्शन के साथ संदर्भित फेसबुक एपीआई ब्राउज़र प्रकार के आधार पर अलग-अलग कोड लौटा रहा है। निश्चित नहीं है कि यहां से कहाँ जाना है, लेकिन अगर मुझे मौका मिलता है तो मैं इस पर जांच करूँगा।

शुभकामनाएं।

+0

इस पर वापस जांच रहा है। ऐसा लगता है कि आप इसे काम कर रहे हैं। मुझे उत्सुकता है कि समस्या क्या हो गई? –

+0

अरे जेफ, वापस आने के लिए खेद है, यह एक व्यस्त सप्ताह रहा है। मैंने थोड़ी सी नज़दीक देखा और पाया कि एक डुप्लीकेट div आईडी समस्या पैदा कर रहा था। –

1

मैं एक ही समस्या में भाग गया। मैंने इसे स्क्रिप्ट को शरीर में बजाए टैग में लोड करने के लिए मजबूर कर दिया।

तो:

<head runat="server"> 
    <!-- all other html tags excluded from this example --> 
    <script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script> 
</head> 

फिर, सुनिश्चित करें कि सभी चीज़ें भरी हुई पहली बनाने के लिए, मैं टैग के ऑनलोड घटना में अमेरिकन प्लान init() कॉल शब्दों में कहें, तो जैसे:

<body onload="FB.init('<%= ConfigurationManager.AppSettings["ApiKey"] %>', 'xd_receiver.htm', { 'reloadIfSessionStateChanged': true });"> 
    <!-- rest of your body --> 
</body> 

गुड लक!

बेस्ट,

-Auri (www.aurigroup.com)

2

मैं भी, जबकि यह अन्य ब्राउज़रों के साथ ठीक था IE के साथ ठीक उसी समस्या थी ...

समाधान के लिए गया था उपयोग:

<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
बजाय

<html> 
+0

के लिए बधाई हो सकता है कि आपने ओपी की समस्या हल नहीं की हो, लेकिन आपने मेरा धन्यवाद हल किया !!! – mazlix

संबंधित मुद्दे