JS: извлечение URL-адресов атрибутов href и src из DOM как абсолютных - PullRequest
0 голосов
/ 02 ноября 2011

Я использую JQuery для извлечения src и href из элементов в DOM следующим образом:

var mysrc;
$('img[src]').each(function (index) {
   mysrc = $(this).attr('src');
   // convert relative path to absolute url
});

Однако многие из этих путей к изображениям или в ссылках href являются относительными, а не абсолютными.Иногда они начинаются с корня сети, например: /blah/img.jpg, и что-то, что они поднимают или опускают на одну директорию: ../blah/img.jpg.Я хотел бы сделать все эти пути как абсолютные URL, и я не нашел сценарий для этого.Я знаю, как извлечь хост данной страницы из этого местоположения, но тогда мне не хватает всей логики, которая бы конвертировала эти относительные пути в абсолютные URL.Любая идея, где я мог бы найти что-то для этого в Javascript / JQuery, или как мне действовать.

Спасибо за вашу помощь,

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

.prop() возвращает рассчитанное значение свойства, то есть абсолютный путь.
Вместо использования метода jQuery вы также можете использовать простой this.src.

$('img[src]').each(function (index) {
   // var mysrc = $(this).prop('src');  //<-- jQuery
   var mysrc = this.src;
   // Why do you want to get the absolute path, by the way?
});
0 голосов
/ 02 ноября 2011

Возможно, вы хотите получить контекст приложения - я не думаю, что он доступен в javascript.Вы можете знать это за приложение, хотя.

В JSP вы можете получить контекст следующим образом:

var contextPath = "<% = request.getContextPath ()%>";

другие языки на стороне сервера должны иметьаналогичные конструкции.Имея контекст, вы можете сформировать абсолютный путь, например

Абсолютный путь = window.location - contextPath +lativeURL;

, поэтому, если ваш URL-адрес

http://mysite.com/foo/bar и контекст http://mysite.com/foo/, а относительный путь - "../somedir/mypic.jpg", тогдаабсолютный путь будет

/ бар /../ somedir / mypic.jpg

...