繁体   English   中英

如何检查背景img是否无法加载?

[英]How to check if background img failed to load?

如标题所述。 我希望能够确定背景img是否无法加载。 我环顾四周,看到大量信息,但可悲的是无法让其中任何一个为我工作。

我看到一个不错的描述,它描述了使用名为waitForImages的插件位于: https : //github.com/alexanderdickson/waitForImages

我似乎无法加载失败的工作。 现在,如果有人有更好的方法,我会全部开放! 只要我能收到警报说它失败。 我推送了一个伪造的URL,因此它应该返回链接无效。

码:

$("#cover-art").css("background-image", 'url("/assets/img/cover-adio.png")');

$('#cover-art').waitForImages(function() {
    alert('All images have loaded.');
}, function(loaded, count, success) {
   alert(loaded + ' of ' + count + ' images has ' + (success ? 'loaded' : 'failed to load') +  '.');
   $(this).addClass('loaded');
});

您可以执行以下操作:

$('<img/>').load("/assets/img/cover-audio.png", function(res, status, xhr) {
    if(status == "error"){
         alert("Image not loaded");
    }
    else{
         $(this).remove(); 
         $("#cover-art").css('background-image', 'url(/assets/img/cover-adio.png)');
    }
});

这是一个工作中的小提琴

积分: 此答案

我不知道是否有一种方法可以检查客户端javascript是否存在给定的url。 但是您可以尝试使用此技巧。

  <!DOCTYPE html> <html> <head> <title></title> </head> <body> <div id="mydiv" style="background-image:url('foo.png')"> <img id="foo_img" src="foo.png" style="display:none;"> <p>Status:<span id="result"></span></p> </div> </body> <script type="text/javascript"> var imgtowatch = document.getElementById("foo_img"); var events = ["load", "error"]; events.forEach(function(ev){ imgtowatch.addEventListener(ev, function(){ document.getElementById("result").innerHTML = ev; }); }); </script> </html> 

然后尝试

`style="background-image:url('http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png')` 

src='http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM