Facebook,一旦用户喜欢网站,可能隐藏“不同”按钮?

时间:2011-02-08 09:30:45

标签: javascript html facebook

我以为我昨天看到了一些代码,但我现在找不到链接了。如果用户之前没有喜欢过,我希望向用户提供相似的按钮,但如果他们喜欢,则隐藏不同的按钮。

如果记忆对我很好,我以为我看到了'fb-connect'这一行?

1 个答案:

答案 0 :(得分:2)

警告 - 这有点像黑客,谨慎使用。

Facebook将其“喜欢”按钮放在iframe中。以下是我从mashable.com中删除的一些示例代码:

<iframe id="f17d5477e8" name="fe09b2668" scrolling="no" style="border-width: initial; border-color: initial; overflow-x: hidden; overflow-y: hidden; width: 625px; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; border-width: initial; border-color: initial; height: 23px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " title="Like this content on Facebook." class="fb_ltr" src="http://www.facebook.com/plugins/like.php?api_key=1897dc5133d45afc31d3c4448572a681&amp;channel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fa%3Da%23cb%3Df22b1d5684%26origin%3Dhttp%253A%252F%252Fmashable.com%252Ff218c30e6%26relation%3Dparent.parent%26transport%3Dpostmessage&amp;href=http%3A%2F%2Fmashable.com%2F2011%2F02%2F08%2Finstagram-api%2F&amp;layout=standard&amp;locale=en_US&amp;node_type=link&amp;sdk=joey&amp;show_faces=true&amp;width=625"></iframe>

很抱歉,如果您需要查看完整内容,请将其复制并将其复制到文本编辑器中。

有两个有趣的内容:

首先,它是一个iframe,因此无法获得DOM级别访问实际的“喜欢”文本。你不能做这样的测试:

$('.liketext').text() == 'unlike';

其次,它们在iframe源中方便地提供了21px的默认高度:)注意当你已经喜欢的东西时,div的大小增加到62px。

然后要隐藏“喜欢”按钮,您只需要执行以下操作:

if( $('iframe').height() > 30){ //over 30px? already "liked" it
  $('iframe').css('display', 'none');// or remove it from the DOM
}

如果您想在用户点击“赞”按钮后立即隐藏它,可以向iframe的resize事件添加事件处理程序。

FWIW - 这有点蠢,但我怀疑你已经知道了;)