包装JavaScript跟踪代码
我有以下来自Piwik的跟踪代码包装JavaScript跟踪代码,javascript,Javascript,我有以下来自Piwik的跟踪代码 <!-- Tracking Code --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/"); document.write(unescape("%3Cscript src='" + pkBaseURL +
<!-- Tracking Code -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 29);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://example.com/piwik.php?idsite=29" style="border:0" alt="" /></p></noscript>
<!-- Tracking Code -->
var pkBaseURL=((“https:==document.location.protocol)?”https://example.com/" : "http://example.com/");
write(unescape(“%3Cscript src=”+pkBaseURL+“piwik.js”type='text/javascript'%3E%3C/script%3E”);
试一试{
var piwikTracker=Piwik.getTracker(pkBaseURL+“Piwik.php”,29);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
}捕获(错误){}
我想隐藏下面的代码,所以我想我可以把这些代码放在一些js文件中,并使用下面的代码加载它
但我不知道我该怎么做。这里需要帮助
其次,我需要更改站点id(在上面的示例中,是29),这对于不同的站点是不同的
如何将站点id传递给我将创建的自定义文件,并执行上述代码。将其放入piwik_loader.js:
var pkBaseURL = (("https:" == document.location.protocol) ? "https://example.com/" : "http://example.com/");
var piwik_js = document.createElement('script');
piwik_js.setAttribute("type","text/javascript");
piwik_js.setAttribute("src", pkBaseURL + "piwik.js");
var executor = function ()
{
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", piwik_page_id);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
}
piwik_js.onreadystatechange= function ()
{
if (this.readyState == 'complete')
executor();
}
piwik_js.onload = executor;
document.getElementsByTagName('head')[0].insertBefore(piwik_js, document.getElementsByTagName('head')[0].firstChild);
并将其保存到您的html文件中:
<!-- Tracking Code -->
<script type="text/javascript"> var piwik_page_id = '29'; </script>
<script type="text/javascript" src="piwik_loader.js"></script>
<noscript><p><img src="http://example.com/piwik.php?idsite=29" style="border:0" alt="" /></p></noscript>
<!-- Tracking Code -->
var piwik_page_id='29';
隐藏代码是什么意思?你在隐瞒什么?对于第二个问题,请参阅该文档。在当前脚本元素之后编写加载外部资源的脚本元素…这意味着在运行try
块之前不会加载外部资源,因此,try
块所依赖的对象将不存在,它只会中断。您能重新检查解决方案吗?它更糟。脚本元素仍在创建,但从未添加到文档中。编辑:我刚刚添加了一行,将新创建的脚本元素附加到head元素,以便在try-catch块之前执行其内容。不,仍然缺少某些内容。
var pkBaseURL = (
( "https:" == document.location.protocol )
?
"https://example.com/"
:
"http://example.com/");
var piwik_script = document . createElement ( "script" ) ;
piwik_script . src = pkBaseURL + "piwik.js" ;
document . body . appendChild ( piwik_script ) ;
function track ()
{
try
{
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", piwik_page_id);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
}
piwik_script . addEventListener ( "load", track );