我一直试图找出如何在Facebook粉丝页面上添加某种类似按钮。我知道有办法做到这一点。例如,此页面实现了一种类似按钮:http://www.facebook.com/JimBeam?v=app_100742133310820
我知道这两个页面都使用应用程序,而不是您经常使用的静态FBML页面。所以我创建了一个可以很好地运行的应用程序。
在此应用程序上,类似按钮可以正常工作。然而,当我尝试将其添加到Facebook页面上的选项卡时,我收到一条错误消息:“呈现标签时出现HTML错误”iframe“:iframe禁止使用TabFBM”所以显然iframe不允许呈现。但显然有很多方法可以解决这个问题,所以你对他们在其他页面上的表现有什么了解吗?
我真的很感激答案,我特别好奇是否有人能够弄清楚他们如何在Jim Beam的页面上重新设置类似按钮。
答案 0 :(得分:2)
Facebook页面的标签是FBML。而且你不能在这个页面上直接添加like按钮(fb:like或其他)。但是有一个“技巧”可以做到这一点,你给出的页面实现了以下内容:
获得类似按钮的唯一方法是将其加载到iframe中。但是在页面的FBML中也禁止使用iframe。所以诀窍是加载一个带有AJAX(fbjs调用)的html页面,其中包含一个带有fb:like按钮的iframe。由于Facebook禁止javascript自动充值,因此在进行ajax调用以加载html的iframe之前,需要点击相似或图片。这主要是屁股的痛苦。
所以,这是概念证明代码。
第一个文件:index.html:
<script type="text/javascript">
<!-- function launch_code() {
var ajax = new Ajax();
ajax.responseType = Ajax.FBML;
ajax.requireLogin = false;
ajax.ondone = function(data) {
document.getElementById('content').setInnerFBML(data);
}
document.getElementById('content').setTextValue('Loading, please wait.');
ajax.post('http://example.com/greatpageapp/iframe.html');
return false; }
//--> </script>
<div id='content'>
<input type='button' onclick='launch_code(); return false;' value='click on me' />
</div>
iframe.html内容:
<center>
<table valign="top" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width="520" height="1500">
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fgoogle.com%2F&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>
</td>
</tr>
</center>
现在测试并正常工作。希望有所帮助。