Перенаправление со страницы холста Facebook на сайт - PullRequest
8 голосов
/ 23 августа 2011

Есть ли способ перенаправить со страницы холста Facebook на мой внешний сайт? Я видел блоги и ответы на вопросы stackoverflow в форме:

<script>
window.top.location = 'http://www.yoursite.com/';
</script>

К сожалению, подобные решения никогда не работают. Я также пробовал top.location.href, window.location и location.href .. ничего не работает. Facebook удалил возможность перенаправления из javascript, анализируя этот вид кода? Есть ли еще способ перенаправить?

ОБНОВЛЕНИЕ : происходит то, что веб-страница действует так, как будто никогда не было инструкции по перенаправлению javascript. И на самом деле, когда я смотрю на исходный код через firebug, я не вижу перенаправлений javascript.

ОБНОВЛЕНИЕ 2 : я получаю следующие ошибки javascript, формирующие мою страницу холста, когда я пытаюсь window.top.location = 'http://www.yoursite.com/'; и другие варианты выше. Кажется, Facebook не разрешает доступ к глобальным переменным javascript окна, вершины или местоположения:

Uncaught ReferenceError: a217374027657_location is not defined
Uncaught ReferenceError: a217374027657_window is not defined
Uncaught ReferenceError: a217374027657_top is not defined

Интересно, что document.location = 'http://www.yoursite.com/'; работает в том смысле, что исключений нет ... но, конечно, веб-страница не перенаправляется.

ОБНОВЛЕНИЕ 3 : разобрался! Javascript redirect работает только с холстами iframe. Мне пришлось изменить свои настройки на расширенном экране, чтобы использовать iframe вместо FBML.

Ответы [ 5 ]

8 голосов
/ 23 августа 2011

как насчет использования следующего кода:

 <script type='text/javascript'>
    top.location.href = 'http://www.yousite.com';
 </script>
5 голосов
/ 27 февраля 2014

Осторожно, перенаправление пользователя на внешний сайт может нарушить политика платформы

Основная цель вашего приложения Canvas или Page Tab на Facebook должна не просто перенаправить пользователей из опыта Facebook и на внешний сайт.

1 голос
/ 24 февраля 2012

Я только что сделал это в моем приложении:

    if(window.top.location.href != window.location.href){
    window.top.location.href = window.location.href;
    }
    
Просто поместите это на верх страницы холста. Если верхний раздел href не соответствует URL-адресу, из которого извлекается содержимое вашего холста, он перенаправляется на ваш сайт.
1 голос
/ 23 августа 2011

Из моего скрипта

    <script type='text/javascript'>
            top.location.href = 'http://riseofkings.net/fb.php?setcook&cook=cookhere';
     </script>

И это всегда работало.Выдает ли какая-либо ошибка, исключение или около того?

Если вы можете использовать PHP, попробуйте die() после этого кода JavaScript

0 голосов
/ 23 августа 2011

Это невозможно, Facebook специально отключил эту функцию.Вам придется либо остаться на холсте, открыть всплывающее окно (если это возможно), либо просто создать ссылку, по которой пользователь может щелкнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...