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

JavaScript, Вопросы и ответы
14 февраля 2012

Вопрос

Мне нужно получить из относительного веб-адреса абсолютный (полный). Как это можно сделать на чистом 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;
}

2 комментария

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


(обязательно)