为什么 window.location.href= 不转发到使用 Safari 的页面?

新手上路,请多包涵

我的站点允许用户通过 Fb 按钮登录,我为此使用 FB / Parse.com JDK https://parse.com/docs/js/guide#users-facebook-users

一旦用户被识别,下面的代码就会让用户登录并将他们转发到一个 url。这在 Chrome 下按预期工作,但不能使用 Safari,该页面只停留在空白的 fb.html 页面上

我已经看到有一些历史问题

window.location.href=

但是,找不到适合我的解决方案的修复程序。有谁知道解决这个问题的方法吗?

 Parse.FacebookUtils.logIn(null, {
    success: function(user) {
        if (!user.existed()) {

        } else {
            window.location.href="user_home.html";

        }
    },
    error: function(user, error) {

    }
});

原文由 Dano007 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在所有浏览器中工作的最佳方式:

 setTimeout(function(){document.location.href = "user_home.html";},250);

原文由 stdob– 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在 safari 上也遇到过这种情况,发现了这篇文章,但发现了另一个我想添加的解决方案,其中包含大量浏览器支持。不要替换当前位置,而是使用位置对象上名为 assign() 的方法

document.location.assign(document.location.origin + "/user_home.html")

这也有效

location.assign(location.origin + "/user_home.html")

在桌面和移动 iOS 设备上的 Chrome 和 safari 中测试

参考:https: //www.w3schools.com/jsref/met_loc_assign.asp

原文由 Merb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题