更新1
我从角速起动开始,只添加了facebook的javascript,但是它不会加载:
<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script>我使用Facebook JavaScript API在angular 2应用程序中创建登录,但遇到以下情况:
TypeError: FB.login不是一个函数
index.html (为简洁而省略)
<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script>
<script>
System.import('app').catch(function (err) {console.error(err);});
</script>我注意到脚本似乎没有正确加载,下面是来自Chrome devtools的

角2分量
declare const FB: any;
@Component({
// usual suspects here
})
export class LoginComponent implements OnInit {
constructor() {
FB.init({
appId: 'my-app-id',
cookie: false,
xfbml: true,
version: 'v2.5'
});
}
ngOnInit(): void {
FB.getLoginStatus(response => {
....
});
}
onSignin(socialMedia: string): void {
FB.login(); // The errant line
}
}我应该做以下事情吗?如本文所述
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.com/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));发布于 2017-03-16 01:08:02
为了别人的利益.
它是鬼怪插件,它(除其他外)阻塞了“社会信号”。
发布于 2017-03-15 11:17:13
我认为在主html file.Also中插入fb的脚本库,确保fb开发人员提供的脚本被插入到解决problem.follow (链接https://developers.facebook.com/docs/javascript/quickstart )的代码中。
发布于 2017-03-17 11:24:15
不要直接运行FB.init,您应该这样做:
declare var window:any;然后在构造函数或ngInit方法中使用FB异步方法:
window.fbAsyncInit = function() {
FB.init({
appId: appID,
xfbml: true,
version: 'v2.5'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.com/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));当facebook加载时,fbAsyncInit自动获得触发器。
参见Facebook快速启动的更多信息
https://stackoverflow.com/questions/42742819
复制相似问题