Yandex.Metrica の説明は、Webサイトの所有者が自分のページに挿入しなければならない//mc.yandex.ru/metrika/watch.js
(前にhttp:
のような)のようなURLは間違いではないことを明示しています。したがって、たとえばこのコード:
<img src="//mc.yandex.ru/watch/00000"
style="position:absolute; left:-9999px;" alt="" />
大丈夫だと主張されています。
ただし、コードバリデーターはそのようなURLは大丈夫ではないと考えているため、後でコードを「修正」しようとしてコードを壊さないように、バリデーターを幸せにしたいと思います。
これらのURLにhttp:
が付加されないのはなぜですか?実際にhttp:
を先頭に追加するとどうなりますか?
コード検証ツールが間違っていると思います。 URLの一部が欠落している場合、他の部分は親ページから埋められます。たとえば、画像がhttp://example.org/page1.html
からsrc="pic.jpg
で参照されている場合、ブラウザはファイルを取得する前にhttp://example.org/
の前にsrc.jpg
を追加します。URLのhttp:
部分(プロトコル)がない場合、親ページのプロトコルは利用される。
なぜhttp:
が付加されないのですか? https://ページがある場合、画像は自動的にhttps経由で配信されるためだと思います。
実際にhttp:を先頭に追加し、httpsページがある場合、ブラウザによっては、ページのコンテンツの一部が安全ではないというエラーメッセージが表示される場合があります。