
14.03.2009, 15:09
|
Интересующийся
|
|
Регистрация: 14.03.2009
Сообщений: 29
|
|
Как получить полную ссылку из относительной, с учётом базы
Обычным решением вопроса является подобное (может использоваться img, для поддержки IE6):
Код:
|
var qualifyURL=function(url){
var a=document.createElement('a');
a.href=url;
return a.href;
}; |
Но мне требуется независимо задавать базу, относительно которой считаются ссылки.
Гугль находит только решения вроде этого, размер которых как-то не вдохновляет.
Может быть есть что-то попроще?
|
|

14.03.2009, 15:26
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
вам нужно, чтобы возвращалась ссылка в зависимости от двух параметров:,базового адреса(относительно которого задается) и относительного?
и в чем же проблема?
если относительный адрес начинается со слеша, то приклеиваем относительный адрес к домену базового.
если нет, то просто склеиваем.
или я неправильно понял вашу задачу?
PS по моему у найденного вами решения вполне приемлимый вид.
если вам не нужны все варианты чклейки(например начианющихся с точки), то удалите соответствующий блок.
еще можете написать очень сложную регулярку, которая будет занимать строчку-две, и выполнять все то же, что и то решение
|
|

14.03.2009, 16:16
|
Интересующийся
|
|
Регистрация: 14.03.2009
Сообщений: 29
|
|
Поняли верно. Но хотелось бы иметь универсальное решение и при этом не изобретать велосипед. Самостоятельная обработка всех вариантов сильно на это смахивает
Но, если нет других решений, то придётся так.
|
|

14.03.2009, 16:45
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
если хотите, чтобы у вас было что-то по типу вашего кода, то попробуйте такое:
создайте динамически iframe с вашим базовым адресом.
и относитлеьно него проводите создание ссылки и прочее.
только с вероятностью 99.9% браузер вам этого не даст сделать, так как это противоречит политике безопасности
|
|

14.03.2009, 18:15
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Lexi,
А в какой задаче вам нужно конвертировать ссылки из относительной в абсолютную вручную?
|
|

14.03.2009, 20:40
|
Интересующийся
|
|
Регистрация: 14.03.2009
Сообщений: 29
|
|
Gvozd,
Ну, домен в моём случае меняться не будет, так что можно и попробовать.
Андрей Параничев,
Задача частная, но хотелось бы иметь общее решение 
|
|

14.03.2009, 20:43
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Lexi,
то есть вам надо менять не домен(со своего на чужой) в базовом адресе, а подпапку в бзаовом адресе?
тогда должно сработать, но имхо несмотря на краткость это не самое лучшее решение.задействовать DOM для работы со строками это слишком, хотя и обратное является своего рода "экономией на спичках"
|
|

14.03.2009, 20:56
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Создавайте тег base с нужным href, после определения урла удаляйте.
|
|

14.03.2009, 21:21
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
нет.я все -таки против задействования DOM-a для таких вещей.
по меому та функция, что вам выдал гугл очень даже хорошая.
почистить от того что вам не надо, и будет в самый раз
|
|

14.03.2009, 21:54
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Gvozd,
там не все так просто, а тут несколько строчек. Простота -- залог надежности.
|
|
|
|