1

我想使用 Javascript 在我的 HTML 页面中添加一个 Facebook 登录按钮:

var button = document.createElement("fb:login-button");
button.size = "xlarge";
parent.appendChild(button);

按钮出现,非 Facebook 特定属性如idlang可以成功添加。但是,添加 size 属性没有效果。

另外,如果我尝试使用添加任何属性button.createAttribute(),我会得到

未捕获的类型错误:对象 #<HTMLUnknownElement>没有方法“createAttribute”

为什么 Facebook 的登录按钮不被识别为有效的 HTML 元素,即使它出现在页面上?使用 Javascript 插入 Facebook 登录按钮并更改其大小的正确方法是什么?

4

1 回答 1

1

您需要Facebook JavaScript SDK来动态呈现这些社交插件。初始化 SDK 后,您可以随心所欲地操作页面,然后您所要做的就是调用该FB.XFBML.parse()函数,标签就会正确显示。

您甚至可以在特定元素上调用该函数以获得更多控制:

FB.XFBML.parse( document.getElementById( 'some-element' ) );
// or with jQuery
FB.XFBML.parse( $( "#some-element" )[0] )

您还应该尝试手动将标记附加为字符串:

element.innerHTML += '<fb:login-button id="some-element" size="xlarge"/>'; 
FB.XFBML.parse( document.getElementById( 'some-element' ) );

以下是相关文档的概述:

该函数动态解析和呈现文档中的 XFBML 标记。如果您通过 ajax 从服务器发送 XFBML 并希望在客户端呈现它,则可以使用此方法。XFBML 使您能够将 FBML 合并到您的网站和 IFrame 应用程序中。

您可以使用此方法解析以下 XFBML 标签:

  • FB:活动
  • FB:评论
  • FB:朋友堆
  • 脸书:喜欢
  • FB:like-box
  • fb:login-button <-------------- WOOHOO!
  • FB:姓名
  • FB:个人资料图片
  • FB:建议
于 2013-07-08T21:52:31.330 回答