我正在使用Facebook Connect的网站上工作,最近进行了一些更改,以便主页被缓存,如果您没有登录(使用ajax调用检查),它会加载Facebook Connect javascript并将连接按钮呈现为这页纸.除了Internet Explorer 7和8之外,这在任何地方都能很好地工作.奇怪的是我将按钮渲染为隐藏的"注册/登录"表单,当您显示其中任何一个时,会出现"连接"按钮.你可以看看这里,你会看到Firefox中的按钮,而不是Internet Explorer.如果单击"登录",将显示该按钮.
这是一个Rails应用程序所以在服务器端我们响应一个像这样的rjs的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
第一行是替换标题,第二行是Modal对话框中的Connect按钮.渲染到标题中的部分内容如下所示:
<%= fb_login_button(remote_function(:url => "/facebook/connect"))%> |
<%= link_to_function "Sign In", "showSignInForm();", :id => "signin" %> |
<%= link_to_function "Sign Up", "showSignUpForm();", :id => "signup" %>
呈现在Modal对话框中的Partial如下所示:
<%= fb_login_button(remote_function(:url => "/facebook/connect"))%>
我发现显示模态对话框导致显示所有图标非常奇怪.有没有人对正在发生的事情有任何想法或建议?