我正在尝试使用Google跟踪代码管理器将Facebook支持聊天模块添加到我的网站。
我使用的代码是由Facebook生成的,而我所做的只是将其直接复制到Google跟踪代码管理器中,所以我不确定为什么它不起作用...
它一直给我这个错误:
“在模板中发现无效的HTML,CSS或JavaScript”
<!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
xfbml : true,
version : 'v3.2'
});
};
(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/en_US/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<!-- Your customer chat code -->
<div class="fb-customerchat"
attribution=setup_tool
page_id="XXXXXXXXXXX"
theme_color="#111111">
</div>
答案 0 :(得分:0)
Google跟踪代码管理器使用一种工具(Closure Compiler)检查Javascript的有效性。与通常只忽略非标准属性的浏览器不同,Closure Compiler中的linter非常严格,会对它不了解的内容不屑一顾(我的有根据的猜测是-CC试图优化Javascript以使其运行更快,并且如果它不了解标签的哪个部分,则无法优化。
因此,如果收到此警告,请首先检查不是标准HTML的位。就像在其他答案中指出的那样,诸如“属性”,“ page_id”和“ theme_color”之类的属性是不错的选择。您需要将它们一个接一个地删除,以查看是否可以部署标记,然后希望您的聊天仍然可以进行。
答案 1 :(得分:0)
我假设您在Custom HTML GTM标签中添加了给定的代码,在这种情况下,纯HTML将不起作用(<div class="fb-customerchat" [...]</div>
)。因此,必须将给定的代码转换为javascript才能正常工作。
我将遵循GTM文档并使用User-defined (Constants) Variables来存储参数或任何字符串/值。 (可选,它将与诸如var page_id = '0123456789';
这样的硬编码值一起使用)
在下面的示例中,我将两种方法混合使用以更好地理解。
<script>
(function() {
// Sample variables
var page_id = '{{FB - PageID}}';
var ref = '';
var theme_color = '{{FBChat - ThemeColor}}';
var logged_in_greeting = 'Your greeting message for logged in users'; // Can be a Custom Constant Variable Sting
var logged_out_greeting = 'Your greeting message for logged out users'; // Can be a Custom Constant Variable Sting
// Do not edit
var el = document.createElement('div');
el.className = 'fb-customerchat';
el.setAttribute('page_id', page_id);
if (ref.length) {
el.setAttribute('ref', ref);
}
el.setAttribute('theme_color', theme_color);
el.setAttribute('logged_in_greeting', logged_in_greeting);
el.setAttribute('logged_out_greeting', logged_out_greeting);
document.body.appendChild(el);
})();
// Facebook SDK for JavaScript : https://developers.facebook.com/docs/javascript/quickstart
window.fbAsyncInit = function() {
FB.init({
appId : '{{FB - AppID}}',
xfbml : true,
// autoLogAppEvents : true,
version : 'v3.3'
});
// autoLogAppEvents replacement with logPageView
FB.AppEvents.logPageView();
};
// Customer Chat SDK : https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin/sdk#install
(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/en_US/sdk/xfbml.customerchat.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>