如何使用Javascript插入Facebook登录按钮?
我想使用Javascript将Facebook登录按钮添加到我的HTML页面:如何使用Javascript插入Facebook登录按钮?,javascript,facebook,facebook-login,Javascript,Facebook,Facebook Login,我想使用Javascript将Facebook登录按钮添加到我的HTML页面: var button = document.createElement("fb:login-button"); button.size = "xlarge"; parent.appendChild(button); 按钮出现,可以成功添加非Facebook特定属性,如id和lang。但是,添加“大小”属性无效 另外,如果我尝试使用按钮.createAttribute()添加任何属性,我会得到 未捕获类型错误:对象#
var button = document.createElement("fb:login-button");
button.size = "xlarge";
parent.appendChild(button);
按钮出现,可以成功添加非Facebook特定属性,如id
和lang
。但是,添加“大小”属性无效
另外,如果我尝试使用按钮.createAttribute()
添加任何属性,我会得到
未捕获类型错误:对象#
没有方法“createAttribute”
为什么Facebook的登录按钮即使出现在页面上也不能被识别为有效的HTML元素?使用Javascript插入Facebook登录按钮并更改其大小的正确方法是什么?您需要动态呈现这些社交插件。初始化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' ) );
element.innerHTML+='';
parse(document.getElementById('someElement');
以下是来自以下网站的概述: 此函数解析并呈现计算机上文档中的XFBML标记 飞行。如果您通过ajax从服务器发送XFBML,则可以使用此选项 并希望将其呈现在客户端。XFBML使您能够合并 将FBML导入您的网站和IFrame应用程序 可以使用此方法分析以下XFBML标记:
- fb:活动
- fb:评论
- 朋友堆
- fb:就像
- fb:像盒子一样
- fb:login按钮您需要动态呈现这些社交插件。初始化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' ) );
element.innerHTML+=''; parse(document.getElementById('someElement');
以下是来自以下网站的概述: 此函数解析并呈现计算机上文档中的XFBML标记 飞行。如果您通过ajax从服务器发送XFBML,则可以使用此选项 并希望将其呈现在客户端。XFBML使您能够合并 将FBML导入您的网站和IFrame应用程序 可以使用此方法分析以下XFBML标记:- fb:活动
- fb:评论
- 朋友堆
- fb:就像
- fb:像盒子一样
- fb:login按钮如果我对整个文档(无参数)或父节点调用此函数,我会得到两个登录按钮,都正常工作,大小都正常。如果我在按钮本身上调用它,什么也不会发生,因为它所调用的元素。因此,只需在
之后调用parse函数。不知道为什么会出现两个插件。。。如果您“手动”触发解析,请检查appendChild()
是否设置为false(在JSSDK中)-这可能是解析标记两次的原因。我在xfbml
之后调用它,正如您所预测的,当appendChild()
设置为false时,重复将消失。但是,这仍然不能使按钮的大小正确(好的,我是通过手动编写HTML来实现的:xfbml
。这几乎是有道理的:您希望为XFBML解析器创建原始文本,而不是扩展DOM树。请随意编辑答案以包含工作代码。您需要调用FB.XFBML.parse()在element的父元素上如果我在整个文档(无参数)或父节点上调用此函数,我会得到两个登录按钮,都正常工作,大小都正常。如果我在按钮本身上调用它,什么都不会发生,因为调用它的元素。因此,只需在parent.innerHTML+='';FB.XFBML.parse(content);
。不确定为什么会出现两个插件…如果您“手动”触发解析,请检查appendChild()之后调用解析函数
是否设置为false(在JS SDK中)-这可能是解析标记两次的原因。我在xfbml
,正如您所预测的,当appendChild()之后调用它
设置为false时,重复将消失。但是,这仍然不能使按钮的大小正确。:(好的,我通过手动编写HTML:xfbml
。这几乎是有道理的:您希望为XFBML解析器创建原始文本,而不是扩展DOM树。请随意编辑答案以包含工作代码。您需要在元素的父元素上调用FB.xfml.parse()parent.innerHTML+='';FB.xfbml.parse(content)来实现它);