facebook之后刷新窗口

时间:2011-09-22 17:00:06

标签: facebook redirect facebook-like

我在公司页面中创建了一个应用程序,以添加更多带有“喜欢门”的标签/页面,以确保用户在继续前进之前喜欢我们的页面。如果用户喜欢我们的页面“index2.php”,那么类似的门位于一个位置说“index.php”,他们不喜欢我们“index1.php”是包含的。这一切都正常。

我的问题是我想在“index1.php”(如果他们不喜欢我们)页面中包含一个“喜欢”按钮。我添加了一个允许用户喜欢我们的按钮,但是在点击这个按钮后需要刷新,这样就可以再次在喜欢门处评估用户并相应地重定向。

下面的代码允许用户喜欢但不会像我希望的那样重定向。我查看了fb开发者页面上的示例,但我是fb app dev的新手,无法弄清楚我的错误。任何帮助将不胜感激,希望这是足够的信息,但如果您需要更多,请回复。感谢您的任何帮助,您可以提供。

    <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_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
  FB.Event.subscribe('edge.create',
    function() {
        top.window.location = 'http://www.facebook.com/pages/TAG_Communications/122751567742494?sk=app_243094502403141';
        }
    );
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://www.facebook.com/pages/TAG_Communications/122751567742494" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>

1 个答案:

答案 0 :(得分:8)

哇,我正在尝试做同样的事情,并在你发布这个问题的同时搜索这个!在这方面并不多。

我遇到http://www.techjam.gr/2011/web-design/execute-javascript-facebook-button-clicked/,它解释了在非常清楚地点击按钮后如何运行回调脚本。我发现你已经在大部分时间这样做,但也许有一些部分被解释为你遗漏或没有指明。

此外,我在尝试重定向父帧时遇到了很多麻烦,因为它触发了跨域javascript访问安全性错误。不确定这是否是你问题的一部分。对于我自己的情况,我打算在点击时将我的iframe页面从no-fan.php重定向到fan.php - 我不需要重新评估他们是否是粉丝,如果他们是我的fangate代码点击了按钮。

希望能帮到你。

更新:

通过以上链接获得帮助! 这是我做的(下面的代码): 一定要使用普通的FB.init代码。 使用按钮上方的重定向代码添加回调脚本。 添加like按钮的xfbml版本。 就是这样!

请注意,我确实使用了top.window.location并将其发送到我的fangate评估代码。原因是,如果你只是重定向框架,它会保留页面的其余部分,并且它仍然在标题附近有像facebook一样的按钮。刷新整个页面可以看到应有的方式,避免混淆。

代码:

            <div id="fb-root"></div>
            <script src="http://connect.facebook.net/en_US/all.js"></script>
            <script>
                FB.init({
                    appId :'your id here',
                    status : true, // check login status
                    cookie : true, // enable cookies to allow the server to access the session
                    xfbml : true, // parse XFBML
                    channelUrl : 'full path to file', // channel.html file
                    oauth : true // enable OAuth 2.0
                });
            </script>


        <script>
            FB.Event.subscribe('edge.create', function(href, widget) {
                top.window.location = 'your tab url';
            });
        </script>

        <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_US/all.js#xfbml=1";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>

        <div class="fb-like"><fb:like href="your page you want to like" send="false" layout="button_count" width="200" show_faces="false"></fb:like></div>