W3C验证器提示‘fb:like无法表示为XML 1.0’问题求助
解决W3C验证中fb:like元素不符合XML 1.0的问题
嘿,这个问题我帮好多开发者踩过坑——W3C验证器抛出的“元素名称fb:like无法表示为XML 1.0”警告,核心原因很简单:XML 1.0规范里,元素名称里的冒号是专门给XML命名空间用的,但你页面里的fb:前缀没有绑定任何合法的命名空间,所以验证器不认它。
而且要提一句,Facebook的旧FBML(Facebook Markup Language)其实早就被弃用了,就算你补了命名空间,后续也可能遇到兼容性问题,所以更推荐用官方现在主推的JavaScript SDK方案,一步解决验证和功能问题:
具体替换步骤
第一步:加载Facebook JavaScript SDK
在页面的<head>标签里(或者<body>底部,不影响首屏加载的位置)添加这段脚本:<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0" nonce="YOUR_NONCE_VALUE"></script>注:
nonce属性是给内容安全策略(CSP)用的,如果你的网站没配置CSP,可以直接去掉这个属性。第二步:替换原fb:like标签
把你原来的<fb:like>标签替换成带data属性的div元素,配置参数和原来保持一致就行:<div class="link-social-follow"> <div class="fb-like" data-href="https://www.facebook.com/testingPage" data-send="false" data-layout="button_count" data-width="80" data-show-faces="false"> </div> </div>
这样改完之后,再跑W3C验证就不会有那个警告了,而且这种方式是Facebook官方当前推荐的嵌入方案,兼容性更好,后续功能更新也能同步跟上。
内容的提问来源于stack exchange,提问作者rams
相关产品推荐
相关产品推荐

