Javascript 图像src相对路径到绝对路径
我有一个网站,现在正在为它制作一个混合应用程序。 我使用jQueryGet方法获取所有博客文章。 然而问题是有时是相对url,有时是绝对url 每次绝对url都会打断显示404错误的图像 如何编写Jquery函数来查找src是否为绝对值并将其更改为Javascript 图像src相对路径到绝对路径,javascript,jquery,Javascript,Jquery,我有一个网站,现在正在为它制作一个混合应用程序。 我使用jQueryGet方法获取所有博客文章。 然而问题是有时是相对url,有时是绝对url 每次绝对url都会打断显示404错误的图像 如何编写Jquery函数来查找src是否为绝对值并将其更改为 https://www.example.com/media/image.png 我将无法提供我尝试过的任何代码示例,因为我不是前端开发人员,并且尝试了一整天来解决它 注意:我需要更改仅在div中显示的图像。您应该始终对所有图像使用相同的路径,但在您
https://www.example.com/media/image.png
我将无法提供我尝试过的任何代码示例,因为我不是前端开发人员,并且尝试了一整天来解决它
注意:我需要更改仅在
div中显示的图像。您应该始终对所有图像使用相同的路径,但在您的情况下,您可以通过图像循环并附加域,在我添加了变量中的域的情况下,您可以根据需要更改它
您可以使用公共函数或图像加载来重新渲染,但
注意:图像加载后将重新加载
var-imageDomain=”https://homepages.cae.wisc.edu/~ece533/“;
//javascript解决方案
//window.onload=函数(){
//var images=document.getElementsByTagName('img');
//对于(var i=0;i{
如果(a.indexOf(b)=-1){
a=b+a;
}
返回a;
});
console.log(imgaesCorrected)代码>
img{
宽度:50像素
}
最好是在插入主文档之前使用来自ajax请求的响应html执行此操作,以防止在更改src时发出不必要的404请求
在不了解您是如何提出请求或如何处理响应的情况下,下面是一个使用$.get()
如果没有绝对url,您可以从一个对象获取所有图像并查找/更改它们。
var-images=$('img');
对于(var i=0;i
/media/image.png
应该始终有效,这是绝对的。您必须有一些没有前导的/
,比如相对的src=“media/image.png”
。你能修复源代码吗?@charlietfl如果它在同一个域上,它就可以工作。我正在开发一个混合应用程序,因此需要更改为带有域名的url。它在我的网站上运行得很好,但在应用程序上却不行,因为它不在同一个域中。我正在使用Jquery获取博客文章的内容。它给出了在网站上工作的相对URL,因为它在同一个域和文件系统中。但在应用程序上,它给出了404错误。所以,您在不同于图像源的域上运行此应用程序?显示jQuery get请求的示例。最好在插入页面之前修复它,最好在添加到dom之前在ajax请求中修复它,以防止大量错误请求。如果我理解你的意思,你是说一旦从ajax加载了内容,我就应该应用这个功能,对吗?我想方法是一样的,OP可以根据他的要求进行更改。我是说在$中的html字符串中修复它。get
response@Justcode谢谢你能把它放在Jquery中吗?现在我带来了这个解决方案var a=$('#details img[src^=“/media/”).attr('src');var b='1https://www.example.com'; var c=b+a$(“#详细信息img[src^=“/media/”])attr('src',c)
但不要认为它可以更改帖子中的所有图像,因为现在我只有一个图像。我使用getJson接收数据,然后将帖子内容放入#details div。你说得对,它确实会发出多个请求<代码>$.getJSON(“https://www.example.com/developers/getdataapi/“,{newsid:newsvalueid},函数(result){$('#heading').html(result.title);$('#details').html(result.detail);
Ok sovar$data=$(result.detail)
。然后清理$data
中的图像,并执行$('#details').html($data)
document.querySelectorAll('#details img').forEach(img => {
const src = img.getAttribute('src');
// use regex, indexOf, includes or whatever to determine you want to replace the src
if (true) {
img.setAttribute('src', 'https://www.example.com' + src);
}
});
$.get(url, function(data){
var $data = $(data);
$data.find('img[src^="/media/"]').attr('src', function(_,existing){
return 'https://www.example.com' + existing
});
$('#someContainer').append($data)'
})