Я хочу создать URL-адреса с той же схемой (предположительно, "http:" или "https:" ) в качестве страницы, загружающей текущий JavaScript. Современные браузеры поддерживают просто опускание схемы (например, src="//example.com/test.js"
), но это не полностью совместимо с кросс-браузером. (Я читал, что IE 6 является единственным браузером, который его не поддерживает, но мне все еще нужна совместимость с этой версией.)
Кросс-браузерный способ сделать это, похоже, состоит в проверке location.protocol
. Например, Google Analytics использует:
('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + ...
В случае Google они хотели использовать разные домены в зависимости от того, использует ли запрос SSL, так что шаблон имеет смысл. Но я видел, что другие используют один и тот же шаблон, даже если только протокол отличается:
('https:' == location.protocol ? 'https:' : 'http:') + "//example.com"
(Например, в "Final Wufoo Snippet" в http://css-tricks.com/thinking-async/.)
Вместо этого я предпочел бы использовать это более простое выражение:
location.protocol + "//example.com"
Должен ли я действительно беспокоиться о возможности location.protocol
использовать какое-то значение, отличное от "https:" или "http:", когда мой код используется на сайтах, которые я не контролирую?