Javascript 如何预防<;img>;从加载它的图像标签?

Javascript 如何预防<;img>;从加载它的图像标签?,javascript,jquery,Javascript,Jquery,我有下面的脚本,它获取一个包含html信息的字符串(还包含对图像的引用) 创建DOM元素时,浏览器会下载图像的内容。我想知道是否有可能停止这波伏娃和临时防止加载 我的目标是网络工具包和presto浏览器 relativeToAbosluteImgUrls: function(html, absoluteUrl) { var tempDom = document.createElement('div'); debugger tempDom.inn

我有下面的脚本,它获取一个包含html信息的字符串(还包含对图像的引用)

创建DOM元素时,浏览器会下载图像的内容。我想知道是否有可能停止这波伏娃和临时防止加载

我的目标是网络工具包和presto浏览器

  relativeToAbosluteImgUrls: function(html, absoluteUrl) {
        var tempDom = document.createElement('div');
        debugger
        tempDom.innerHTML = html;
        var imgs = tempDom.getElementsByTagName('img'), i = imgs.length;
        while (i--) {
            var srcRel = imgs[i].getAttribute('src');
            imgs[i].setAttribute('src', absoluteUrl + srcRel);
        }
        return tempDom.innerHTML;
    },

我认为您应该颠倒逻辑,默认情况下不加载图像,在需要图像的时候,更新它的src属性以告诉浏览器开始加载

或者更好的方法是使用一些jquery惰性图像加载插件,如下所示:


希望这有帮助。

src
路径存储到HTML5数据-*属性中,例如
data src
。如果未设置
src
,浏览器将不会下载任何图像。当您准备下载图像时,只需从
datasrc
属性获取URL,并将其设置为
src
属性

$(function() {
    // Only modify the images that have 'data-src' attribute
    $('img[data-src]').each(function(){
        var src = $(this).data('src');
        // modify src however you need to, maybe make
        // a function called 'getAbsoluteUrl'
        $(this).prop('src', src);
    });
});

要防止图像显示,可以使用此选项

    $(window).loaded( function() { 
$("img").removeAttr("src");
 });

这可能很棘手,并且会产生意想不到的结果,但它确实做到了。

流行图像库采用的方法是将
img
标记包装在
noscript
标记中:

<noscript class="img">
  <img src="my-image.jpeg" />
</noscript>

一旦设置了
src
属性,加载就会开始。因此,一个解决方案是在您希望开始加载之前,不要设置
src
属性。它将在具有
src
的值后下载。停止下载的唯一方法是在发送到客户端(服务器端脚本)之前停止下载。页面是如何创建的?是html/php/asp等吗。?不要接受客户端建议,因为您无法在浏览器上停止它-太晚了。请设置保存源文件的自定义
data src
属性,并在希望加载图像时,在调用此方法I pass html时设置实际的
src
属性。html包含这样的代码,以便我理解从tempDom.innerHTML=html开始加载的过程;所以当我做tempDom.getElementsByTagName时。。。图像已下载此操作可能会删除页面上显示的图像,但Idk会阻止浏览器在下载开始后在后台下载图像。由于这是一个
$(document).ready()
,原始页面标记中的所有
标记都将开始下载。没有想到,虽然可能是这样,但如果你知道我的意思,它已经离答案近了一步。谢谢你的回答,我已经为我的问题添加了一条注释
$('noscript.img').replaceWith(function(){
    return $(this.innerText).removeAttr('src');
});