繁体   English   中英

在Facebook应用程序(IE7)中重定向“赞”

[英]Redirecting On 'Like' in Facebook Application (IE7)

我目前正在使用新的时间轴布局为客户端构建一个Facebook应用程序,这意味着没有登录页面等。无论如何,有一个我们希望用户访问的应用程序具有令人讨厌的“ Fan Gates”之一,您必须“喜欢”页面,然后才能查看完整的应用程序。 决定我们在页面内有一个“赞”按钮,这意味着我需要在他们单击“赞”以显示正确的应用程序后手动进行刷新/重定向。

我正在使用此代码来实现此目的:

<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" />

要快速遍历它,需要为like按钮和我需要的功能添加javascript sdk。 然后,我设置SDK设置,自动增加iframe的长度,并最终获得我的点击事件功能,如果单击该按钮,我会将其带到应用程序页面。

除IE7之外,此方法均可在其他任何地方正常工作。 当您在IE7中单击“喜欢”时,它只是坐在那里而不运行重定向。 我看不到任何错误。 正如我所说,所有其他浏览器都执行重定向。

我已经坚持了很长时间,所以任何帮助将不胜感激。

干杯

我怀疑IE7阻止了您的JavaScript重定向,因为它没有考虑将iFrame内部的按钮(“赞”按钮)视为有效的用户互动。 IOW,这是Web浏览器的重定向阻止机制。 为了确认这是真的,请更改以下代码:

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

警报显示吗? 如果是,则确认已捕获该事件,但浏览器阻止了重定向。 一个好的解决方法是,除了尝试重定向以外,还显示“继续”按钮,以防万一重定向在某些浏览器中不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM