Piwik 跟踪代码中断 HTML 验证
Piwik tracking code breaks HTML Validation
我正在使用 Piwik 来跟踪我博客的访问者。这是 Piwik 跟踪代码:
<!-- 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 的人的跟踪吗?如果禁用 javascript 的浏览器甚至看不到 <noscript>
部分,为什么 HTML 验证器会抱怨。
谢谢!
页眉中不允许使用 <p>
和 <img>
标记,您说得对。 HTML 验证器当然应该抱怨。它不知道您的访问者是否会启用脚本。
我会将整个 <noscript>
部分移到结束 </body>
标记之前。该部分的工作方式是,如果有人禁用了 JavaScript,它会加载一个小的不可见图像。 Piwik 将这张正在加载的图片记录为一次访问(注意图片来源是 Piwik PHP 脚本)。
https://developer.piwik.org/guides/tracking-javascript-guide
copy and paste the Javascript tracking code into your pages, just after the opening <body>
tag (or within the <head>
section)
如果你想把它放在 <head>
里,把 <script>
块放在那里,<noscript>
块放在 <body>
的顶部。不过,没有必要这样做——正如官方文档所说,将整个代码块放在 <body>
的顶部就可以了。
Why does an HTML Validator complain if the section won't even been seen by browsers with javascript disabled.
因为禁用 JS 的浏览器仍然是期望有效的浏览器 HTML。
我正在使用 Piwik 来跟踪我博客的访问者。这是 Piwik 跟踪代码:
<!-- 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 的人的跟踪吗?如果禁用 javascript 的浏览器甚至看不到 <noscript>
部分,为什么 HTML 验证器会抱怨。
谢谢!
页眉中不允许使用 <p>
和 <img>
标记,您说得对。 HTML 验证器当然应该抱怨。它不知道您的访问者是否会启用脚本。
我会将整个 <noscript>
部分移到结束 </body>
标记之前。该部分的工作方式是,如果有人禁用了 JavaScript,它会加载一个小的不可见图像。 Piwik 将这张正在加载的图片记录为一次访问(注意图片来源是 Piwik PHP 脚本)。
https://developer.piwik.org/guides/tracking-javascript-guide
copy and paste the Javascript tracking code into your pages, just after the opening
<body>
tag (or within the<head>
section)
如果你想把它放在 <head>
里,把 <script>
块放在那里,<noscript>
块放在 <body>
的顶部。不过,没有必要这样做——正如官方文档所说,将整个代码块放在 <body>
的顶部就可以了。
Why does an HTML Validator complain if the section won't even been seen by browsers with javascript disabled.
因为禁用 JS 的浏览器仍然是期望有效的浏览器 HTML。