Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить полную ссылку из относительной, с учётом базы (https://javascript.ru/forum/misc/3065-kak-poluchit-polnuyu-ssylku-iz-otnositelnojj-s-uchjotom-bazy.html)

Lexi 14.03.2009 15:09

Как получить полную ссылку из относительной, с учётом базы
 
Обычным решением вопроса является подобное (может использоваться img, для поддержки IE6):
Код:

var qualifyURL=function(url){
        var a=document.createElement('a');
        a.href=url;
        return a.href;
};

Но мне требуется независимо задавать базу, относительно которой считаются ссылки.
Гугль находит только решения вродеэтого, размер которых как-то не вдохновляет.
Может быть есть что-то попроще?

Gvozd 14.03.2009 15:26

вам нужно, чтобы возвращалась ссылка в зависимости от двух параметров:,базового адреса(относительно которого задается) и относительного?
и в чем же проблема?
если относительный адрес начинается со слеша, то приклеиваем относительный адрес к домену базового.
если нет, то просто склеиваем.
или я неправильно понял вашу задачу?
PS по моему у найденного вами решения вполне приемлимый вид.
если вам не нужны все варианты чклейки(например начианющихся с точки), то удалите соответствующий блок.
еще можете написать очень сложную регулярку, которая будет занимать строчку-две, и выполнять все то же, что и то решение

Lexi 14.03.2009 16:16

Поняли верно. Но хотелось бы иметь универсальное решение и при этом не изобретать велосипед. Самостоятельная обработка всех вариантов сильно на это смахивает ;)
Но, если нет других решений, то придётся так.

Gvozd 14.03.2009 16:45

если хотите, чтобы у вас было что-то по типу вашего кода, то попробуйте такое:
создайте динамически iframe с вашим базовым адресом.
и относитлеьно него проводите создание ссылки и прочее.
только с вероятностью 99.9% браузер вам этого не даст сделать, так как это противоречит политике безопасности

Андрей Параничев 14.03.2009 18:15

Lexi,
А в какой задаче вам нужно конвертировать ссылки из относительной в абсолютную вручную?

Lexi 14.03.2009 20:40

Gvozd,
Ну, домен в моём случае меняться не будет, так что можно и попробовать.

Андрей Параничев,
Задача частная, но хотелось бы иметь общее решение ;)

Gvozd 14.03.2009 20:43

Lexi,
то есть вам надо менять не домен(со своего на чужой) в базовом адресе, а подпапку в бзаовом адресе?
тогда должно сработать, но имхо несмотря на краткость это не самое лучшее решение.задействовать DOM для работы со строками это слишком, хотя и обратное является своего рода "экономией на спичках"

Kolyaj 14.03.2009 20:56

Создавайте тег base с нужным href, после определения урла удаляйте.

Gvozd 14.03.2009 21:21

нет.я все -таки против задействования DOM-a для таких вещей.
по меому та функция, что вам выдал гугл очень даже хорошая.
почистить от того что вам не надо, и будет в самый раз

Kolyaj 14.03.2009 21:54

Gvozd,
там не все так просто, а тут несколько строчек. Простота -- залог надежности.


Часовой пояс GMT +3, время: 16:30.