提醒:本文最后更新于 2809 天前,文中所描述的信息可能已发生改变,请仔细核实。
官方推荐方式是声明命名空间,做法就是在HTML标签中增加XML命名空间
=>在HEAD或FOOTER中引入WB.JS
=>在需要部署微博关注按钮的位置粘贴WBML代码。
确实能用,但是就W3C会有错误,首先一个就是
Attribute xmlns:wb not allowed here.
这是声明命名空间方式问题。IE导致的坑,如下解决(替换HTML标签)。
<!--[if lt IE 9 ]> <html <?php language_attributes(); ?> xmlns:wb="http://open.weibo.com/wb"> <!--[if (gte IE 9)|!(IE)]> <html <?php language_attributes(); ?> prefix="wb: http://open.weibo.com/wb">http://open.weibo.com/wb">
第二个坑就是:
Element name wb:follow-button cannot be represented as XML 1.0.
Element wb:follow-button not allowed as child of element div in this context.
这个貌似是因为你的页面定义的不是XML所致,我最后也没解决。
微博开放平台对于这个问题没有回应,我还在V2EX发了贴,无人问津。
我只能说或许大家没这毛病???有没有人指点迷津啊。。。
我现在解决办法就是用了个间接办法,算是完美解决上述问题,而且还不麻烦。。。不用声明XML命名空间方式,而是用iframe,但这个标签,直接用貌似也会报,不止在W3C,在一些所谓SEO有关检测的站也会提示。
怎么办呢?所以要用间接方式。
在要添加按钮的标签中,定义ID(比如id="follow_weibo"),然后留空。
最后用如下js代码,需要jQuery(因为一般都会有加载),添加到你js文件,或者footer中(需要定义text/javascript类型的script)。
jQuery(document).ready(function($) { $('#follow_weibo').html('<iframe src="http://widget.weibo.com/relationship/followbutton.php?btn=red&style=2&uid=你的ID&width=宽度&height=高度&language=zh_cn&dpc=1" width="宽度" height="高度" frameborder="0" scrolling="no" marginheight="0" allowtransparency="true"></iframe>'); });
通过js可以在页面加载完成后加载iframe框架,既利于SEO也利于W3C检测。。。这算不算作弊!?
而且还减少一开始的js请求,使请求最后加载。
需要改的地方,我已经在代码写了,有你的ID、宽度、高度要改成你自己想要的。
好了,文章结束,欢迎关注我的微博啦!
注:可惜关注按钮不支持HTTPS。
转载请注明转自:kn007的个人博客的《新浪微博关注按钮遇到坑的解决法子》
不用微博久已
@hannah: 我佛慈悲
已关注 哈哈
@World: 。。。互相关注了~
没用这个功能。
@Finle: 我也没用。。
放弃微博的人都是不明智的啊。微信也没那么牛。转的东西也还是微博吃剩的
@大福: 这位少年,和我学做饭吧
@牧风: 听起来很美味的样子
@牧风: 拿手的是?
@大福: 微博是个好东西,微信也是个好东西
@大福: 你很有天赋,和我学做菜吧~
@大发: 你们俩!!!不许来我这勾引妹仔。。
哈哈,什么W3C检测都没有玩过,咋整?
@geekdai: 凉拌。检测地址:validator.w3.org。说实在我都很久没观察了。要不是有人老是用这个来访问我vps,我还都忘了
什么微博、微信一概不玩~
@lingyun: 没有也挺好的
代码溢出来啦
@kagami: 我chrome没溢出啊。。什么浏览器和版本?加下Q吧:890048
@kagami: IE11也没问题、FF也没问题啊
@kagami: 你QQ多少。。你网站挂了,HTTP 500。建立数据库连接时出错
@kn007: 好了已经~
@kagami: 刚得空。准备洗完睡觉
各种坑
提前祝您,新春快乐
羊年大吉
羊年发财
@天长地久: 呀呀,各种感谢,你也是大吉大利、升官发财!
偶买噶,还是没有找到本地化微博关注按钮。