I want to check if an image exists using jquery.
我想检查是否存在使用jquery的图像。
For example how do I check this image exists
例如,如何检查这个图像是否存在
http://www.google.com/images/srpr/nav_logo14.png
the check must give me a 200 or status ok
这张支票必须给我200英镑的支票
--------------edited-------------------
- - - - - - - - - - - - - - - -编辑- - - - - - - - - - - - - - - - - - -
var imgsrc = $(this).attr('src');
var imgcheck = imgsrc.width;
if (imgcheck==0) {
alert("You have a zero size image");
} else { //do rest of code }
Thanks Jean
谢谢你简
5 个解决方案
#1
73
Use the error
handler like this:
使用错误处理程序如下:
$('#image_id').error(function() {
alert('Image does not exist !!');
});
If the image cannot be loaded (for example, because it is not present at the supplied URL), the alert is displayed:
如果无法加载图像(例如,因为该图像不在提供的URL中),则显示警报:
Update:
更新:
I think using:
我认为使用:
$.ajax({url:'somefile.dat',type:'HEAD',error:do_something});
would be enough to check for a 404.
检查404页面就足够了。
More Readings:
更多阅读:
- http://www.jibbering.com/2002/4/httprequest.html
- http://www.jibbering.com/2002/4/httprequest.html
- http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/
- http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/
Update 2:
更新2:
Your code should be like this:
你的代码应该是这样的:
$(this).error(function() {
alert('Image does not exist !!');
});
No need for these lines and that won't check if the remote file exists anyway:
不需要这些行,也不检查远程文件是否存在:
var imgcheck = imgsrc.width;
if (imgcheck==0) {
alert("You have a zero size image");
} else {
//execute the rest of code here
}
#2
27
$.ajax({
url:'http://www.example.com/somefile.ext',
type:'HEAD',
error: function(){
//do something depressing
},
success: function(){
//do something cheerful :)
}
});
from: http://www.ambitionlab.com/how-to-check-if-a-file-exists-using-jquery-2010-01-06
来自:http://www.ambitionlab.com/how -检查-如果-文件-存在使用jquery - 2010 - 01 - 06
#3
9
if it doesnt exist load default image or handle error
如果它不存在,加载默认图像或处理错误
$('img[id$=imgurl]').load(imgurl, function(response, status, xhr) {
if (status == "error")
$(this).attr('src', 'images/DEFAULT.JPG');
else
$(this).attr('src', imgurl);
});
#4
4
Use Case
$('#myImg').safeUrl({wanted:"http://example/nature.png",rm:"/myproject/images/anonym.png"});
API :
$.fn.safeUrl=function(args){
var that=this;
if($(that).attr('data-safeurl') && $(that).attr('data-safeurl') === 'found'){
return that;
}else{
$.ajax({
url:args.wanted,
type:'HEAD',
error:
function(){
$(that).attr('src',args.rm)
},
success:
function(){
$(that).attr('src',args.wanted)
$(that).attr('data-safeurl','found');
}
});
}
return that;
};
Note : rm
means here risk managment .
注意:rm的意思是风险管理。
Another Use Case :
$('#myImg').safeUrl({wanted:"http://example/1.png",rm:"http://example/2.png"})
.safeUrl({wanted:"http://example/2.png",rm:"http://example/3.png"});
-
'
http://example/1.png
' : if not exist 'http://example/2.png
'“http://example/1。png':如果不存在'http://example/2.png'
-
'
http://example/2.png
' : if not exist 'http://example/3.png
'“http://example/2。png':如果不存在'http://example/3.png'
#5
2
From here:
从这里开始:
// when the DOM is ready
$(function () {
var img = new Image();
// wrap our new image in jQuery, then:
$(img)
// once the image has loaded, execute this code
.load(function () {
// set the image hidden by default
$(this).hide();
// with the holding div #loader, apply:
$('#loader')
// remove the loading class (so no background spinner),
.removeClass('loading')
// then insert our image
.append(this);
// fade our image in to create a nice effect
$(this).fadeIn();
})
// if there was an error loading the image, react accordingly
.error(function () {
// notify the user that the image could not be loaded
})
// *finally*, set the src attribute of the new image to our image
.attr('src', 'images/headshot.jpg');
});
#1
73
Use the error
handler like this:
使用错误处理程序如下:
$('#image_id').error(function() {
alert('Image does not exist !!');
});
If the image cannot be loaded (for example, because it is not present at the supplied URL), the alert is displayed:
如果无法加载图像(例如,因为该图像不在提供的URL中),则显示警报:
Update:
更新:
I think using:
我认为使用:
$.ajax({url:'somefile.dat',type:'HEAD',error:do_something});
would be enough to check for a 404.
检查404页面就足够了。
More Readings:
更多阅读:
- http://www.jibbering.com/2002/4/httprequest.html
- http://www.jibbering.com/2002/4/httprequest.html
- http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/
- http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/
Update 2:
更新2:
Your code should be like this:
你的代码应该是这样的:
$(this).error(function() {
alert('Image does not exist !!');
});
No need for these lines and that won't check if the remote file exists anyway:
不需要这些行,也不检查远程文件是否存在:
var imgcheck = imgsrc.width;
if (imgcheck==0) {
alert("You have a zero size image");
} else {
//execute the rest of code here
}
#2
27
$.ajax({
url:'http://www.example.com/somefile.ext',
type:'HEAD',
error: function(){
//do something depressing
},
success: function(){
//do something cheerful :)
}
});
from: http://www.ambitionlab.com/how-to-check-if-a-file-exists-using-jquery-2010-01-06
来自:http://www.ambitionlab.com/how -检查-如果-文件-存在使用jquery - 2010 - 01 - 06
#3
9
if it doesnt exist load default image or handle error
如果它不存在,加载默认图像或处理错误
$('img[id$=imgurl]').load(imgurl, function(response, status, xhr) {
if (status == "error")
$(this).attr('src', 'images/DEFAULT.JPG');
else
$(this).attr('src', imgurl);
});
#4
4
Use Case
$('#myImg').safeUrl({wanted:"http://example/nature.png",rm:"/myproject/images/anonym.png"});
API :
$.fn.safeUrl=function(args){
var that=this;
if($(that).attr('data-safeurl') && $(that).attr('data-safeurl') === 'found'){
return that;
}else{
$.ajax({
url:args.wanted,
type:'HEAD',
error:
function(){
$(that).attr('src',args.rm)
},
success:
function(){
$(that).attr('src',args.wanted)
$(that).attr('data-safeurl','found');
}
});
}
return that;
};
Note : rm
means here risk managment .
注意:rm的意思是风险管理。
Another Use Case :
$('#myImg').safeUrl({wanted:"http://example/1.png",rm:"http://example/2.png"})
.safeUrl({wanted:"http://example/2.png",rm:"http://example/3.png"});
-
'
http://example/1.png
' : if not exist 'http://example/2.png
'“http://example/1。png':如果不存在'http://example/2.png'
-
'
http://example/2.png
' : if not exist 'http://example/3.png
'“http://example/2。png':如果不存在'http://example/3.png'
#5
2
From here:
从这里开始:
// when the DOM is ready
$(function () {
var img = new Image();
// wrap our new image in jQuery, then:
$(img)
// once the image has loaded, execute this code
.load(function () {
// set the image hidden by default
$(this).hide();
// with the holding div #loader, apply:
$('#loader')
// remove the loading class (so no background spinner),
.removeClass('loading')
// then insert our image
.append(this);
// fade our image in to create a nice effect
$(this).fadeIn();
})
// if there was an error loading the image, react accordingly
.error(function () {
// notify the user that the image could not be loaded
})
// *finally*, set the src attribute of the new image to our image
.attr('src', 'images/headshot.jpg');
});