Javascript 使用Google Analytics和Facebook Pixel关闭编译器警告
我有一个函数如下所示:Javascript 使用Google Analytics和Facebook Pixel关闭编译器警告,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我有一个函数如下所示: function StartThirdPartyScripts() { (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.
function StartThirdPartyScripts() {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-XXXXXXXXX-1', 'auto');
ga('send', 'pageview');
!function (f, b, e, v, n, t, s) {
if (f.fbq) return; n = f.fbq = function () {
n.callMethod ?
n.callMethod.apply(n, arguments) : n.queue.push(arguments)
}; if (!f._fbq) f._fbq = n;
n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0;
t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s)
}(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'XXXXXXXXXXXXXXXXXXXX');
fbq('track', 'PageView');
}
问题是,当我在闭包编译器高级模式下运行此程序时,我收到了3条警告,因为参数的数量不匹配。以下是警告:
WARNING - Function function: called with 5 argument(s).
Function requires at least 7 argument(s) and no more than 7 argument(s).
(function (i, s, o, g, r, a, m) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ClosureCompiler/initialjxaz.js:512: WARNING - Suspicious code. The result of
the 'not' operator is not being used. !function (f, b, e, v, n, t, s) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ClosureCompiler/initialjxaz.js:512:
WARNING - Function function: called with 4 argument(s). Function requires at
least 7 argument(s) and no more than 7 argument(s).
!function (f, b, e, v, n, t, s) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^ 0 error(s), 3 warning(s)
我能做些什么来修复它?您可以放心地忽略这些警告。代码中有未使用的额外函数参数,因此闭包编译器发出警告。如果参数被标记为可选或具有默认值,则编译器不会发出警告
我也不知道他们为什么使用
代码>该函数前面的运算符。看起来他们正在使用它来防止连接的文件没有分号,但我希望他们使用代码>。您能显示警告吗?而且,这看起来像是最小化的代码,这真的是源代码吗?您使用什么设置进行编译?包括正在使用的外部程序。目前,我的JS代码是44K行,编译时没有任何警告;花了很多时间让一切都完美运转。我刚刚添加了Google和FB脚本,现在出现了警告。我可以删除额外的参数吗?在调用站点显式传递undefined
更安全。这会删除警告吗?是。调用参数的数量需要与函数参数的数量匹配。好的,我将在我的代码中尝试,并让您知道。谢谢,你帮了我好几次。