这是代码:
<div id="wrapper">
<img src="lowres/image123.jpg">
</div>
前提:<img>
元素由专有系统后端生成,并使用低分辨率图像作为源。我只能使用纯javascript(没有jquery!)对其进行操作。
我需要将 desrc
属性更改为位于外部服务器中的高分辨率版本,例如src="//cdn.provider.com/highres/image123.png"
:(图像具有相同的名称但位置不同)。
问题:在<img>
插入 DOM 后执行此操作会发出 2(两个)HTTP 请求,一个用于低分辨率图像,另一个用于高分辨率 - 我在页面上有很多图像!
为了修复它,我想知道是否可以<img>
在将其插入 DOM 之前对其进行操作以进行src
适当的更改,例如通过拦截<img>
事件“beforeInsertion”或包装它的事件“afterInsertion” 。<div>
干杯!
更新1:为了清楚起见:1)我无权访问后端/服务器端;2)我不想显示低分辨率的图像,只显示高分辨率;3)我事先不知道文件名,需要从 中获取<img>
并附加到CDN中存储的高分辨率版本的路径中(两张图片同名);和 4) 我可以用下面的代码做到这一点,但代价是两个HTTP 请求,这是我想要避免的,也是引发这个问题的原因!;)
var img = document.getElementById("wrapper").childNodes[0];
img.src = getHighResolutionImagePath(img.src);