Facebook Javascript SDK窗口位置重新加载不适用于Firefox

Dam*_*ien 5 firefox location window reload facebook-javascript-sdk

我正在使用Facebook Connect建立一个网站,因此使用Facebook Javascript SDK. 问题:使用Firefox时,登录或注销后页面无法正常重新加载.

FB.Event.subscribe(
   '{% if current_user %}auth.logout{% else %}auth.login{% endif %}',
    function(response){
        window.location.reload();
});
Run Code Online (Sandbox Code Playgroud)

显然,它看起来像一个已知的问题(只需键入"窗口位置重新加载不在Firefox上工作",你会得到很多结果)

更确切地说,Firefox在重新加载页面时似乎没有发送正确的cookie ...
- 当我点击登录时,一旦Facebook登录并设置了cookie,Firefox就不会发送任何cookie
- 当我点击退出时一旦Facebook将我退出并删除了cookie,Firefox就会发送之前存在的cookie.
我总结它使用一些"缓存功能".

我尝试按照此处的描述制定解决方法并实现此目的:

redirect_url = encodeURIComponent(window.location.href);
url = window.location.href + "account/login?redirect_url=" + redirect_url;
window.location.replace(url);
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在(我猜的缓存......)你可以帮我解决这个问题吗?

谢谢.

chw*_*hwk 13

尝试使用零延迟在setTimeout()中包装window.location.reload().显然,Firefox会在设置cookie之前触发事件.包装应将重新加载调用放在事件队列中,并允许正确设置cookie.