Как можно конвертировать относительный URL в абсолютный на JavaScript?

Вопрос

Мне нужно получить из относительного веб-адреса абсолютный (полный). Как это можно сделать на чистом JavaScript? Предположим, у меня есть ссылка вида:

<a href="mysite.com/blog">Мой блог</a>
<a href="http://mysite.com/blog">Мой блог</a>
<a href="/blog">Мой блог</a>

Я хочу, чтобы при обращении ко всем ссылкам я получал одинаковый полный адрес вместе с «http», как во втором варианте.

Ответ №1

Все современные браузеры преобразовывают путь в абсолютный автоматически при обращении к element.href. Но есть некоторые устаревшие интернет-эксплореры (особенно шестых версий), которые особо отличились и выдают ссылку без преобразования. Чтобы получить полный URL-адрес наверняка, можно пропустить его через функцию:

function absPath(url){
var Loc = location.href;
Loc = Loc.substring(0, Loc.lastIndexOf(''/''));
while (/^\.\./.test(url)){
Loc = Loc.substring(0, Loc.lastIndexOf(''/''));
url= url.substring(3);
}
return Loc + ''/'' + url;
}

No responses yet

Добавить комментарий