Как можно конвертировать относительный 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;
}

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

  • Камиль:

    Спасибо! Избавил меня от необходимости изобретать велосипед;)

  • DanielWep:

    President Putin is really dead or not?
    http://wooooow.ru/putin-has-died/

  • DanielWep:

    привет! сейчас этот гель очень популярен. посмотри может тебе он нужен? https://goo.gl/lalfPU

  • MikeJob:

    Hi,

    We started great new movie project, could you support us and share link on your site?
    Its a free online movie source https://moviesto.me with free registration
    Thanks!

  • seoEV:

    Добрый день.
    Если вам нужны клиенты — могу вам помочь.
    Вы получите трафик заинтересованных клиентов на свой сайт.
    Продвину ваш сайт в топ 10 по ключевым запросам в поисковых системах Яндекс и Гугл.
    Берусь за сложные случаи.

    В настоящий момент считаю наиболее оптимальным продвигаться по 50-100 запросам сразу.По умолчанию я сам составляю для Вас проект, подберу семантическое ядро для сайта, составлю алгоритм работы, проведу полный анализ вашей ниши.Продвижение сайта не зависит от какой либо поисковой системы, так как продвижение универсально.

    Сегодня многие «продвиженцы» сайтов берут огромные деньги необоснованно. Я использую новейшую, белую методику продвижения сайтов, которую используют профессиональные фирмы, но в отличие от фирм, которые берут за свои услуги 150 процентов, я работаю по минимальной стоимости.
    Предлагаю гарантированный рост сайта по ключевым запросам и трафик заинтересованных клиентов на ваш сайт. Не имеет значения чем занимается компания и какая конкуренция в сети.

    Если вас заинтересовало предложение — вы можете задать интересующие вас вопросы по электронной почте или оставить свои контактные данные для связи.
    seo.eugeny@yandex.ru для заявок и уточнения стоимости работ по вашему сайту.
    С уважением, Евгений.
    Специалист по продвижению, созданию и поддержке интернет сайта.
    Любые ключевые слова с минимальными затратами. Частник. Опыт 12 лет.

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


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