5

これで、いいねボタンを生成できます:D

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

しかし、なぜそうではないのですか

js.src = "プロトコル: //connect.facebook.net/en_US/all.js#xfbml=1 ";

プロトコルを特定しないのはなぜですか?

4

5 に答える 5

8

これは、HTTP ページと HTTPS ページの両方で機能する単一の参照を使用できる便利なトリックです。URL のプロトコルが省略されている場合、ブラウザーは代わりに基になるドキュメントのプロトコルを使用します。

通常の暗号化されていない HTTP を介して読み込まれたページでは、その URL を使用するスクリプト参照は HTTP を介して読み込まれ、通常どおりキャッシュされます。同様に、HTTPS 経由で読み込まれた安全なページでも。

したがって、プロトコルのない URL を使用すると、単一のスクリプト参照が最も最適なものに適応することができます: HTTP と HTTP ページでの完全なキャッシュ サポート、および保護されたページでの HTTPS であり、ユーザーが混合コンテンツの警告に直面しないようにします。

ソース: http://encosia.com/cripple-the-google-cdns-caching-with-a-single-character/

于 2013-02-12T12:46:01.900 に答える
1

It's a little trick called protocol-relative URL that "save you some headaches".

于 2013-02-12T12:41:49.760 に答える
0

プロトコルを省略すると、ブラウザは現在のページのプロトコルのいずれかhttpまたはそれhttpsに従って動作します。これにより、セキュリティ警告を気にすることなく、外部リソースを含めることができます。

もちろん、これが機能するためには、外部リソースのパスが現在のページのプロトコルで利用可能である必要があります。

于 2013-02-12T12:37:21.317 に答える
0

なぜ特定のプロトコルがないのですか?

URLのスキーム部分を省略すると、クライアントは、このリソースが埋め込まれているドキュメントのリクエストをすでに使用しているプロトコルを使用するように指示されるためです。

この場合、ドキュメント自体が「通常の」HTTPまたはHTTPSのどちらを介してロードされたかに応じて、ブラウザはhttp://またはhttps://を選択できます。

于 2013-02-12T12:39:04.070 に答える
0

プロトコルを指定しないと、開始要求で使用されたのと同じプロトコルが、スクリプト ファイルの要求に対しても想定されます。

http 経由でリクエストすると、スクリプトは https 経由で読み込まれます。

于 2013-02-12T12:37:10.277 に答える