Я могу указать вам именно то, что вы ищете. Это документ 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, начиная с нескольких предыдущих версий (где это применимо).
Примеры:
Я считаю, что этот метод чище, чем написание кода, чтобы выяснить, находимся ли мы на http / https.
Единственное предостережение в том, что вы не должны использовать это для таблиц стилей.
Пока законно и работает:
В IE вышеупомянутое вызовет два HTTP-запроса. В настоящее время это влияет на IE7, IE8 и ранние версии IE9.
Другими словами, относительные URI схемы должны / могут использоваться для всех ресурсов, кроме таблиц стилей.