我有在客户端网站上输出Piwik跟踪js的wordpress插件:
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://piwik.com//";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="http://piwik.com/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>问题是,一些客户已经使用了他们自己的piwik跟踪js,最终在他们的网站上输出了两个piwik跟踪JS。
然后就会出现冲突,因为两个跟踪JS正在写入相同的JS对象"_paq“
因此,如果能像jQuery的noConflict()那样解决这个问题,那就太好了。
所以我需要告诉"piwik.js“的方法,包括不从"_paq”中读取,以及从一些自定义对象中读取。到目前为止,我可以看到我需要为此修改piwik.js。
我看到piwik有多个跟踪选项:Multiple Piwik trackers
但是我不能控制另一个跟踪代码,我只能控制从我的插件输出的跟踪JS。
因此,任何帮助都会对此很有帮助。
发布于 2017-05-11 20:59:32
我能够解决这个问题的唯一方法是在piwik.js中更改_paq变量的名称(选择一个奇怪的名称),并同步加载piwik.js。
在那之后不会再有碰撞
https://stackoverflow.com/questions/34711184
复制相似问题