Перенаправление со страницы холста Facebook на сайт

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

<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 ответов

Решение

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

 <script type='text/javascript'>
    top.location.href = 'http://www.yousite.com';
 </script>

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

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

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

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

Из моего сценария

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

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

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

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

Другие вопросы по тегам