JS:从DOM中提取href和src属性URL作为绝对值

时间:2011-11-02 18:52:28

标签: javascript jquery regex path absolute-path

我正在使用JQuery从DOM中的元素中提取src和href,如下所示:

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

然而,许多这些图像路径或链接href是相对的,而不是绝对的。有时候他们会从这样的web根开始:/blah/img.jpg以及他们在一个目录中上下的东西:../ blah / img.jpg。 我想将所有这些路径作为绝对URL,我还没有找到一个脚本来执行此操作。我知道如何从该位置提取给定页面的主机,但后来我错过了将这些相对路径转换为绝对URL的所有逻辑。任何想法,我可以在Javascript / JQuery中找到要做的事情,或者我应该如何继续。

感谢您的帮助,

2 个答案:

答案 0 :(得分:2)

.prop()返回计算出的属性值,即绝对路径 您也可以使用普通this.src

,而不是使用jQuery方法
$('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?
});

答案 1 :(得分:0)

你可能想要获得应用程序上下文 - 我认为它不适用于javascript。你可能会知道每个应用程序。

在JSP中,你可以获得这样的上下文:

var contextPath =“&lt;%= request.getContextPath()%&gt;”;

其他服务器端语言应具有类似的结构。有了上下文,你可以形成像

这样的绝对路径

绝对路径= window.location - contextPath + relativeURL;

所以,如果您的网址是

http://mysite.com/foo/bar,上下文为http://mysite.com/foo/,相对路径为“../somedir/mypic.jpg”,绝对路径为

/酒吧/../ somedir / mypic.jpg