Javascript jQuery在img src属性中预先添加URL
我只需要一个jQuery代码片段来在imgsrc中进行前置,即Javascript jQuery在img src属性中预先添加URL,javascript,jquery,Javascript,Jquery,我只需要一个jQuery代码片段来在imgsrc中进行前置,即 <img src='/img/picture1.jpg' /> 因此,在片段jQuery之后,它变成 <img src='http://cdn.something.com/img/picture1.jpg' /> })) 但是,它被替换为src而不是pre它实际上与jQuery无关,无论如何,您可以使用.attr(): 这将影响所有的 无论如何,我不太确定这是个好主意。在触发DOMready事件时,浏览器
<img src='/img/picture1.jpg' />
因此,在片段jQuery之后,它变成
<img src='http://cdn.something.com/img/picture1.jpg' />
}))
但是,它被替换为src而不是pre它实际上与jQuery无关,无论如何,您可以使用
.attr()
:
这将影响所有的
无论如何,我不太确定这是个好主意。在触发DOMready
事件时,浏览器可能已经尝试访问old
源属性。如果必须在Javascript中执行此操作,那么最好将路径信息
存储在自定义数据属性
中,这样浏览器就不会试图加载图像。这可能看起来像:
HTML
这应该可以做到。您可以用$(this.data('path')
替换this.getAttribute()
,因为jQuery将这些数据属性解析为它的“节点”数据散列。但这将创建另一个jQuery对象,这在此时是不必要的。这应该可以:
$.ready(function() {
$('img').each(function() {
$(this).attr('src', cdn + $(this).attr('src'));
});
});
但是,我不确定这是否是使用CDN的好解决方案,因为在调用脚本时,浏览器已经尝试从服务器加载图像
您应该在服务器端执行此操作。根据您的具体问题,您可能可以使用标记来解决此问题,但我假设您只希望在图像上执行此操作,但在页面加载后更改src将使图像重新加载?如果图像在当前位置不存在,则需要在加载页面(服务器端)之前更改src属性。是否应该return'http://cdn.something.com“+src代码>,因为img标签的src以/already@dbwebtek:不客气!如果你认为它是有用的和正确的,你可能会想接受一个答案。JANDY你能解释为什么浏览器不想加载图像吗?因为它看到了图像标记,为什么不尝试渲染它呢?是的,你是对的,在脚本等待DOM就绪时,浏览器会在脚本之前快速加载img…我可以在过渡时间看到FLASH…感谢评论Good Job Man:)
$().ready(function(){
var cdn ='http://cdn.something.com';
$('img').attrib('src', cdn);
$('img').attr('src', function(index, src) {
return 'http://cdn.something.com' + src;
});
<img src='' data-path='/img/picture1.jpg' />
$(function() {
$('img').attr('src', function(index, src) {
return 'http://cdn.something.com' + this.getAttribute('data-path');
});
});
$.ready(function() {
$('img').each(function() {
$(this).attr('src', cdn + $(this).attr('src'));
});
});