用jQuery获取相对图像src

我有图像标签,如下所示:

 

但是当我使用jQuery访问src位时,jQuery会让我回头:

 http://example.comhttps://stackoverflow.com/path/to/my/image.jpg 

这在我正在进行的一些比较中引起了问题。 我不想更改我的图像路径以使用绝对URL。

关于如何从图像路径获取绝对URL的任何想法(这可能不像连接域那么简单 – 因为URL有时可能是绝对的),或者获取我在HTML中提供的路径? 无论哪种方式,我需要他们匹配。

根据activa的评论进行编辑

没有很多jQuery代码要发布,我正在使用循环插件,而在onbefore函数中,我只是调用next.src 。 我的jQuery和JavaScript foo不足以真正理解循环插件正在做什么来生成next – 如果你熟悉循环的话,我认为它是下一个循环的图像的DOM元素。

我的图片标签实际上是这样的:

  

在我的onbefore函数中这段代码:

 alert(next.src); 

导致警报:

 http://127.0.0.1:8000https://stackoverflow.com/site_media/photologue/photos/cache/6927d406810ee9750a754606dcb61d28.jpg 

$("img").attr("src")返回src属性的实际值(在FF3和IE7中尝试过)

所以,当你有

  

它会回来

 http://example.com/path/to/my/image.jpg 

当你有

  

它会回来

 https://stackoverflow.com/path/to/my/image.jpg 

编辑问题后编辑

听起来你可能想尝试

 $(next).attr("src") 

你为什么不剥掉它?

 var hostname = 'http://' + window.location.hostname; 

它会帮助主机名

 http://example.com 

然后重构你的变量

 if( imgSrc == imgSrc2 ) ... 

 if( ImgSource(imgSrc) == imgSrc2 ) ... 

运用

 function ImgSource(path) { return hostname + path; } 

或者另一种方式

 function ImgSource(path) { return path.replace(hostname, ''); } 

要始终获得完整的解析路径,请使用Element.src ,而不是Element.getAttribute("src") (这似乎相当于attr(“src”))。

例如:

 document.getElementsByTagName("img")[0].src 

而不是:

 document.getElementsByTagName("img")[0].getAttribute("src") 

。 我会让你jqueryify .src。

我在一个似乎是基于.NET的服务器上通过Ajax加载的页面上发生了这种情况。 即使路径是相对的,它返回完整的URL,即使在所有其他浏览器中它工作正常。 仅在IE 8中发生。我无法基于域剥离,因为我正在处理的项目有多个环境。

如果我找到比拆分或正则表达式更换更好的东西,我会报告回来。