包装JavaScript跟踪代码

包装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 +

我有以下来自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 + "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 );