2016-09-11 6 views
1

私はPiwikを使用して私のブログの訪問者を追跡しています。ここでPiwikのトラッキングコードは次のとおりです。Piwik追跡コードが破損するHTML検証

<!-- Piwik --> 
<script type="text/javascript"> 
    var _paq = _paq || []; 
    _paq.push(["setDomains", ["*.example.com"]]); 
    _paq.push(['trackPageView']); 
    _paq.push(['enableLinkTracking']); 
    (function() { 
    var u="//example.com/pwt/"; 
    _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.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); 
    })(); 
</script> 
<noscript><p><img src="//example.com/pwt/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> 
<!-- End Piwik Code --> 

彼らは終了</head>タグの直前にそのコードを貼り付けることをお勧めします。

コードを追加しても問題なく動作しますが、HTML検証が破られていることに気がつきました。基本的には、<p>または<img>のタグがページの先頭にあるのが嫌いです。 <noscript>セクション全体をページ本文に移動する必要がありますか? Javascriptを使用しているユーザーの追跡を無効にすることはできますか? <noscript>セクションがjavascriptが無効になっているブラウザでも表示されない場合、HTML Validatorはなぜ文句を言うのですか?

ありがとうございます!

答えて

3

あなたは、<p><img>のタグはページの頭には使用できないということは間違いありません。もちろん、HTMLバリデーターは文句を言うべきです。あなたの訪問者がスクリプトを有効にするかどうかはわかりません。

<noscript>セクション全体を</body>タグの前に移動します。このセクションの仕組みは、誰かがJavaScriptを無効にしている場合、代わりに小さな目に見えない画像を読み込むということです。 Piwikはこのイメージを訪問として読み込みます(イメージソースはPiwik PHPスクリプトです)。

2

https://developer.piwik.org/guides/tracking-javascript-guide

コピーし、あなたのページにJavascriptのトラッキングコードを貼り付け、だけの開口部<body>タグの後(または<head>セクション内)

は、あなたが<head>でそれをしたい場合そこに<script>ブロックを置き、<body>の先頭に<noscript>ブロックを入れます。しかし、これを行う必要はありません。公式の文書で言うように、コード全体を<body>の上に置くだけで問題ありません。

なぜJavaScriptが無効になっているブラウザでもセクションが表示されない場合は、HTML検証ツールでエラーが発生します。

JSを無効にしているブラウザでも、有効なHTMLを期待しているブラウザが存在するためです。

関連する問題