我已经阅读了许多问题和答案,包括StackOverflow 上的这个问题和答案,但没有一个有效。我对我看到的所有回复的问题是“它在 Safari 中有效吗?”。
我试图让它与 Safari 一起使用。它适用于 Chrome 和 Firefox。但在 Safari 中,登录屏幕只是冻结,我收到“不安全的 JavaScript 尝试使用 URL 访问框架”日志消息。
我有一个画布应用程序。我想登录用户并在他们登录后将他们重定向到一个页面。我试图在登录后直接重定向。我试过了
设置
window.top.location
为 facebook url(将一些数据作为 all_data 参数传递给签名请求)设置
window.location
为与我的应用具有相同域的 URL。订阅
auth.login
事件并将重定向放在那里将重定向放在回调中以登录
这些都不适用于 Safari。我开始认为没有办法做到这一点。
function doSomething()
{
FB.login(
function(loginResponse)
{
if (loginResponse.authResponse)
{
window.top.location = "my url"
}
},
{
scope:"some,scope"
}
);
}
}
作为对 Nitzan Tomer 的回应,这里是对 Safari 不起作用但与其他人一起使用的等效代码:
function myThing()
{
FB.login(function(loginResponse)
{
if (loginResponse.authResponse)
{
FB.api('/me', function(response)
{
window.location = "http://my_app.com?x=" + response.xyz;
});
}
},
{
scope:"scopes"
}
);
}