Я прочитал ряд вопросов и ответов, в том числе this one на StackOverflow и ничего не работает. Мой вопрос ко всем ответам, которые я видел, «работает ли он в Safari?».Facebook redirect после входа в систему
Я пытаюсь заставить это работать с 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 Томер, вот эквивалентный код, который не работает с 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"
}
);
}
Спасибо, я посмотрю. Для уточнения, я просто пытаюсь переместиться между экранами в моем приложении холста, а не перейти на другой сайт. – Joe
Итак, почему вы хотите использовать 'window.top.location'? Просто используйте 'window.location', чтобы изменить URL-адрес вашего iframe, а не главного окна. –
В этом весь смысл. Этот метод работает для Chrome и FF, но он просто не работает для Safari. – Joe