我正在使用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中找到要做的事情,或者我应该如何继续。
感谢您的帮助,
答案 0 :(得分:2)
.prop()
返回计算出的属性值,即绝对路径
您也可以使用普通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?
});
答案 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