Перенаправление на «Мне нравится» в приложении Facebook (IE7) - PullRequest
0 голосов
/ 29 марта 2012

В настоящее время я создаю приложение Facebook для клиента, используя новый макет временной шкалы, что означает отсутствие целевых страниц и т. Д. В любом случае, есть приложение, к которому мы хотим, чтобы пользователи заходили, у которого есть одна из тех раздражающих «Фан-ворот», где выдолжен «лайкнуть» страницу, прежде чем вы сможете просмотреть полную заявку.Было решено, что у нас будет кнопка «Мне нравится» на странице, что означает, что мне нужно было вручную обновлять / перенаправлять после того, как они нажимали «Нравится», чтобы показать правильное приложение.

Я использую этот код длядобиться этого:

<div id="fb-root"></div>
<script>
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=xxxx";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>
<script>
    window.fbAsyncInit = function() {

        // Javascript SDK Settings
        FB.init({
            appId  : 'xxx',
            status : true, // check login status
            channelUrl : 'https://www.xxx.com/assets/apps/channel.html', // Channel File
            cookie : true, // enable cookies to allow the server to access the session
            xfbml  : true  // parse XFBML
        });

        // Automatically increase height of our canvas.
        FB.Canvas.setAutoGrow();

        // When they click the like button within our app refresh the page and take them to our app.
        FB.Event.subscribe('edge.create', function(href, widget) {
            window.top.location = '//www.facebook.com/xxx/app_xxx';
        });

    };
</script>

<div id="like"><div class="fb-like" data-href="xxx" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false"></div></div>
<img src="/assets/apps/lyc/img/nolike.jpg" />

Чтобы быстро пройтись по нему, есть javascript sdk для кнопки «Мне нравится» и необходимая мне функциональность.Затем я устанавливаю параметры SDK, автоматически увеличиваю длину iframe и, наконец, получаю функциональность события щелчка, при которой при нажатии кнопки я перенаправляю их на страницу приложения.

Это работает правильно везде, кроме IE7.Когда вы нажимаете «Мне нравится» в IE7, он просто сидит там и не запускает перенаправление.Я не вижу никаких ошибок, хотя.Как я уже говорил, все другие браузеры выполняют перенаправление.

Я застрял на этом довольно долгое время, поэтому любая помощь будет принята с благодарностью.

Приветствия

1 Ответ

0 голосов
/ 29 марта 2012

Я подозреваю, что IE7 блокирует ваше перенаправление JavaScript, потому что он не рассматривает нажатие внутри iFrame (кнопка Like) как допустимое взаимодействие с пользователем. Итак, это механизм блокировки перенаправления веб-браузера. Чтобы подтвердить, что это правда, измените следующий код:

FB.Event.subscribe('edge.create', function(href, widget) {
            alert('You clicked like!');
            window.top.location = '//www.facebook.com/xxx/app_xxx';
});

Оповещение появляется? Если это так, это подтверждает, что событие перехватывается, но браузер предотвращает перенаправление. Хороший обходной путь заключается в отображении кнопки «продолжить» в дополнение к попытке перенаправления на тот случай, если перенаправление не работает в определенных браузерах.

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