Facebook Messenger 的 OpenCart 主题问题
OpenCart theme problem with facebook messenger
我使用此处的说明成功地将 FB Messenger 集成到我的 OpenCart 3.0.3.7 网站中
https://developers.facebook.com/docs/messenger-platform/reference/web-plugins/
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v10.0'
});
};
(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 = 'https://connect.facebook.net/el_GR/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<!-- Your Chat Plugin code -->
<div class="fb-customerchat"
attribution="setup_tool"
page_id="00000000000000">
</div>
在默认主题下,它可以正常工作并且符合预期,但是当我使用zeexo主题时由于某种原因(我怀疑js或css冲突?? ) 它显示一个不响应任何内容的白色圆圈。如何克服这个问题?代码的哪一部分导致了这种行为?
与主题的 Facebook 小部件存在 JS 冲突。
我所要做的就是替换 catalog\view\theme\zeexo\template\common\header.twig
下的“坏”或旧(??)JS 代码
<script>(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/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
对于较新的版本,我从 Facebook SDK 获得
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v10.0'
});
};
(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 = 'https://connect.facebook.net/el_GR/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
现在它适用于 Facebook 小部件和 FB Messenger 聊天。
我使用此处的说明成功地将 FB Messenger 集成到我的 OpenCart 3.0.3.7 网站中 https://developers.facebook.com/docs/messenger-platform/reference/web-plugins/
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v10.0'
});
};
(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 = 'https://connect.facebook.net/el_GR/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<!-- Your Chat Plugin code -->
<div class="fb-customerchat"
attribution="setup_tool"
page_id="00000000000000">
</div>
在默认主题下,它可以正常工作并且符合预期,但是当我使用zeexo主题时由于某种原因(我怀疑js或css冲突?? ) 它显示一个不响应任何内容的白色圆圈。如何克服这个问题?代码的哪一部分导致了这种行为?
与主题的 Facebook 小部件存在 JS 冲突。
我所要做的就是替换 catalog\view\theme\zeexo\template\common\header.twig
<script>(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/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
对于较新的版本,我从 Facebook SDK 获得
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v10.0'
});
};
(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 = 'https://connect.facebook.net/el_GR/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
现在它适用于 Facebook 小部件和 FB Messenger 聊天。