Javascript 如何避免Facebook xfbml.customerchat.js与sdk.js冲突?
我的网站上有两个应用程序Javascript 如何避免Facebook xfbml.customerchat.js与sdk.js冲突?,javascript,facebook,Javascript,Facebook,我的网站上有两个应用程序 客户聊天插件(摘自Facebook粉丝页面) Facebook登录应用程序 第一批 js.src='//connect.facebook.net/en_en/sdk/xfml.customerchat.js' 第二个加载 js.src=“//connect.facebook.net/en_en/all.js#xfml=1&version=v3.3&appId=MYFACEBOOKID” 两个应用程序不能一起工作——如果一个能工作,另一个就不能 因此,如果Faec
- js.src='//connect.facebook.net/en_en/sdk/xfml.customerchat.js'李>
- js.src=“//connect.facebook.net/en_en/all.js#xfml=1&version=v3.3&appId=MYFACEBOOKID”李>
想法?这段代码来自客户聊天插件(由FB在粉丝页面设置中生成) 我从Facebook登录插件中添加了FB.init的一部分,如下所示:
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v3.3'
});
};
// added part START
window.fbAsyncInit = function() {
FB.init({
appId : 'MYAPPID', // Facebook login
cookie : true,
xfbml : true,
version : 'v3.3'
});
};
// added part END
(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.net/lt_LT/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
window.fbAsyninit=函数(){
FB.init({
xfbml:是的,
版本:“v3.3”
});
};
//新增部分开始
window.fbAsyninit=函数(){
FB.init({
appId:'MYAPPID',//Facebook登录
曲奇:是的,
xfbml:是的,
版本:“v3.3”
});
};
//添加部分结束
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src='//connect.facebook.net/lt_lt/sdk/xfml.customerchat.js';
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
两个插件都开始工作。您不应该同时嵌入这两个插件,
xfml.customerchat.js
包含普通SDK的功能和附加功能。有两种方法可以初始化JSSDK—显式地调用FB.init
,或者隐式地将这些参数附加到SDK URL本身的哈希部分。因此,要修复“FB.login()在FB.init()之前调用”的错误,如果您将这些相同的值附加到客户聊天SDK的URL中就足够了。谢谢大家。这是很好的提示!