Использование // в источнике <script> - PullRequest
14 голосов
/ 17 марта 2010

Мне было интересно, есть ли у кого-нибудь какие-либо ресурсы, доказательства или личный опыт использования старого http / https JavaScript <script> hack:

<script src="//someserver.com/js/script.js"></script>

Кто-нибудь сталкивался с проблемами в любом из этих браузеров (IE 5.5+, FF2 +, Chrome, Opera 9+, Safari 3+)? У кого-нибудь были истории успеха?

Ответы [ 4 ]

24 голосов
/ 17 марта 2010

Все современные браузеры понимают этот формат, включая IE 6. (Не уверен в IE 5.5).

На самом деле, это не хак, а совершенно правильный синтаксис URI согласно RFC 3986: раздел 4.2 . Поэтому я говорю, что вы готовы идти.

9 голосов
/ 17 марта 2010

Я могу указать вам именно то, что вы ищете. Это документ RFC, поэтому вам нужно просеять много шума, чтобы получить то, что вы хотите, но это законная функция (не хак) предполагаемых http-клиентов.

       b) If the embedded URL starts with a scheme name, it is
          interpreted as an absolute URL and we are done.

       c) Otherwise, the embedded URL inherits the scheme of
          the base URL.

Подробнее: http://www.faqs.org/rfcs/rfc1808.html (найдите заголовок «Разрешение относительных URL-адресов» и см. Шаги 1 и 2 ниже) или здесь: http://freesoft.org/CIE/RFC/1808/18.htm

Как к сведению, я использую это практически во всех своих производственных проектах - не только для ресурсов JS, но и для ссылок на другие ресурсы, такие как изображения и CSS (ОБНОВЛЕНО: я больше не использую это для связывания таблиц стилей).

Работает практически везде. Я пробовал это в IE, FF, Opera, Chrome, Safari / Webkit, начиная с нескольких предыдущих версий (где это применимо).

Примеры:

  • image

Я считаю, что этот метод чище, чем написание кода, чтобы выяснить, находимся ли мы на http / https.

Единственное предостережение в том, что вы не должны использовать это для таблиц стилей.

Пока законно и работает:

В IE вышеупомянутое вызовет два HTTP-запроса. В настоящее время это влияет на IE7, IE8 и ранние версии IE9.

Другими словами, относительные URI схемы должны / могут использоваться для всех ресурсов, кроме таблиц стилей.

2 голосов
/ 17 марта 2010

Я использую эту схему с тех пор, как задал этот вопрос , и у меня не было никаких проблем Я видел, как это работает в любом браузере, включая IE5.5. (Для большинства вещей, над которыми я работаю, требуется JavaScript, а некоторые из JS включены в этот метод.)

1 голос
/ 26 марта 2010

Я думаю, возможно, причина, по которой люди путаются в этом, заключается в том, что стандартное включение кода Google Analytics делает некоторые сложные вещи с именем хоста на основе протокола.Однако я подозреваю, что это связано с тем, что их имя хоста SSL отличается от имени хоста без SSL, по какой-то сетевой причине, которую я себе представляю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...