Есть еще один хак, который я использую и никогда не видел ни в одном ответе StackOverflow: использование атрибута изображения «src» даст полный базовый путь вашего сайта. Например :
var dummy = new Image;
dummy.src = '$'; // using '' will fail on some browsers
var root = dummy.src.slice(0,-1); // remove trailing '$'
На URL, как http://domain.com/somesite/index.html
,
root
будет установлено значение http://domain.com/somesite/
. Это также работает для localhost или любого действующего базового URL.
Обратите внимание, что это приведет к неудачному HTTP-запросу к $
фиктивному изображению. Вместо этого вы можете использовать существующее изображение, только с небольшими изменениями кода.
В другом варианте используется фиктивная ссылка, без побочных эффектов на HTTP-запросы:
var dummy = document.createElement ('a');
dummy.href = '';
var root = dummy.href;
Я не проверял это на каждом браузере, все же.