鉴于最近对fb-login-button组件的改变(截至一周前,似乎总是将自定义文本改写为“登录”),最好的办法是创建一个自定义CSS类Facebook按钮并通过Javascript触发FB.Login。这就是我所做的,它的工作很好。
下面是一些CSS的Facebook的按钮,看起来完全像标准的Facebook按键,并且支持自定义文本容易:
a.fb-button {
color: #FFF;
display: inline-block;
text-decoration: none;
}
.fb-button {
background: #5F78AB;
background-image: url('http://static.ak.fbcdn.net/rsrc.php/v2/yf/r/S-DbSHszr4D.png'); /*COPY TO YOUR OWN IMAGE STORE*/
background-repeat: no-repeat;
background-position: -1px -81px;
border-top: 1px solid #29447E;
border-right: 1px solid #29447E;
border-bottom: 1px solid #1A356E;
border-left: 1px solid #29447E;
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 1px 0 #8A9CC2;
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 1px 0 #8a9cc2;
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 1px 0 #8A9CC2;
cursor: pointer;
font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
font-size: 13px;
font-weight: bold;
height: 23px;
line-height: 23px;
padding: 0px 5px 0px 30px;
text-align: left;
}
你的页面上的元素将
<a class="fb-button" onClick="fblogin();">Custom Text</a>
然后一个JS功能如此
var fblogin = function() {
FB.login(function(response) {
if (response) {
if (response.authResponse) {
//successful auth
//do things like create account, redirect etc.
} else {
//unsuccessful auth
//do things like notify user etc.
}
},{scope:'email,publish_stream'}); //whatever perms your app needs
};
当然,你需要包括fb根DIV您的网页上,并和初始化Facebook的JS SDK在此之前
下面是它的外观:
关于CSS很酷的事情是,你可以使用它来创建其他的Facebook按钮,您的网站的东西不被支持(如分享)与熟悉的外观和感觉。你甚至可以创建一些额外的CSS允许不同大小的按钮。你只需要有
AFAIK - 当您使用Facebook上的社交插件时,您只能使用它们公开的功能。 JS代码的样式和 - 明显地 - 重写div元素,以便FB Like按钮在任何地方一直出现(并且考虑到本地化)。 你确实有动词的选择用于按钮 - “喜欢”或“推荐” - 但这就是afaik。 – Snouto 2012-07-09 14:01:26
Graeme ...我注意到我的网站上发生了同样的事情,该网站多年来一直正确显示自定义登录文本。看起来,Facebook已经对fb-login-button元素进行了一些未经宣布(或很难找到)的更改。 – byron 2012-07-10 01:29:03
我希望Facebook在这里犯错。我今天花了几个小时的调试,直到我发现这个问题。 – 2012-07-17 00:54:08