Я работаю над сайтом, который использует Facebook Connect и недавно внес некоторые изменения, чтобы кэшировать главные страницы, и если вы не вошли в систему (проверено с помощью вызова ajax), он загружает JavaScript Connect Facebook и отображает подключить кнопку на страницу. Это прекрасно работает везде, кроме Internet Explorer 7 и 8. Странная часть - я отображаю кнопки в скрытой форме регистрации / входа, и когда вы показываете любую из этих кнопок Connect, появляются. Вы можете посмотреть здесь , и вы увидите кнопку в Firefox, а не Internet Explorer. Если вы нажмете Войти, кнопка появится.
Это приложение на Rails, поэтому на стороне сервера мы отвечаем на вызов ajax с помощью rjs следующим образом:
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>
Мне очень странно, что при отображении модального диалогового окна отображаются все значки. У кого-нибудь есть идеи или предложения о том, что происходит?