firefox - Facebook Javascript SDK 窗口位置重新加载在 Firefox 上不起作用

标签 firefox window location 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();
});

显然,它看起来像是一个已知问题(只需键入“window location reload not working on firefox”,您就会得到很多结果)

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

我试图按照 here 中的描述做出解决方法并实现了这一点:
redirect_url = encodeURIComponent(window.location.href);
url = window.location.href + "account/login?redirect_url=" + redirect_url;
window.location.replace(url);

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

谢谢。

最佳答案

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

关于firefox - Facebook Javascript SDK 窗口位置重新加载在 Firefox 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553037/

相关文章:

C++ 透明窗口

ubuntu - xubuntu 错误日志位置

android - locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);返回空指针异常

linux - 无法使用 jenkins 用户启动 Firefox 浏览器

javascript - GWT setCapture 在 Firefox 中也可以工作,怎么样?

html - 图像在 IE 中显示,而不是 Chrome 或 Firefox - http ://localhost:11/myFile being Prepended

wpf - 通过XAML将Window.Content设置为页面吗?

javascript - 如何删除使用 Object.defineProperty 定义的窗口 getter

iphone - 从 GPS 获取每个位置更新

html - 非 webkit 浏览器的 CSS 属性 print-color-adjust