我在公司页面内创建了一个应用程序,用于添加更多带有“点赞门”的选项卡/页面,以确保用户在继续前进之前喜欢我们的页面。如果用户喜欢我们的页面“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>
最佳答案
哇,我正在尝试做完全相同的事情并且在你发布这个问题的同时搜索这个!这方面的内容不多。
我遇到了 http://www.techjam.gr/2011/web-design/execute-javascript-facebook-button-clicked/这非常清楚地解释了在单击按钮后如何运行回调脚本。我看到您大部分时间都在这样做,但也许有一些解释是您遗漏或未指定的。
此外,我在尝试重定向父框架时遇到了很多麻烦,因为它会触发跨域 javascript 访问安全错误。不确定这是否是您问题的一部分。对于我自己的情况,我计划在点击时将我的 iframe 页面从类似 no-fan.php 的内容重定向到 fan.php - 如果他们是我的粉丝,我不需要重新评估他们是否是我的 fangate 代码点击了赞按钮。
希望对您有所帮助。
更新:
在上面的链接的帮助下它开始工作了! 这是我所做的(下面的代码): 请务必使用正常的 FB.init 代码。 在按钮上方添加带有重定向代码的回调脚本。 添加点赞按钮的 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>
关于facebook - 像 facebook 一样刷新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518612/