Javascript 如何确定指定路径上没有图像

Javascript 如何确定指定路径上没有图像,javascript,html,Javascript,Html,我想知道如何确定图像在指定路径上是否可用。如果指定路径上没有图像,我想显示错误消息 例如: <img src="images/products/default.bmp" alt="NoImage"/> 但如果此路径上没有image default.bmp,则会显示alt Noimage,但除此之外,我还想显示一条错误消息…为此,我需要确定没有图像,如何才能显示。请回复 谢谢 Romi使用img“onerror”事件,例如 <img id="image" alt='img'

我想知道如何确定图像在指定路径上是否可用。如果指定路径上没有图像,我想显示错误消息

例如:

<img src="images/products/default.bmp" alt="NoImage"/>

但如果此路径上没有image default.bmp,则会显示alt Noimage,但除此之外,我还想显示一条错误消息…为此,我需要确定没有图像,如何才能显示。请回复

谢谢 Romi

使用img“onerror”事件,例如

<img id="image" alt='img' src="myImg.gif"/>
<script>
function noImg() {
    alert("Can't find image!");
}
document.getElementById("image").onerror = noImg;
</script>

函数noImg(){
警报(“找不到图像!”);
}
document.getElementById(“image”).onerror=noImg;
如果找不到或无法加载img src,它将被触发。

使用img“onerror”事件,例如

<img id="image" alt='img' src="myImg.gif"/>
<script>
function noImg() {
    alert("Can't find image!");
}
document.getElementById("image").onerror = noImg;
</script>

函数noImg(){
警报(“找不到图像!”);
}
document.getElementById(“image”).onerror=noImg;
如果找不到或无法加载img src,它将被激发。

使用jQuery

$('img').error(function(){
    console.log('error');
});
另一种方式

var img = document.getElementsByTagName('img')[0];
if(img.complete){
    console.log('loaded');
}else{
    console.log('not loaded');
}
使用jQuery

$('img').error(function(){
    console.log('error');
});
另一种方式

var img = document.getElementsByTagName('img')[0];
if(img.complete){
    console.log('loaded');
}else{
    console.log('not loaded');
}

如果图像的宽度为0,也可以检查图像的宽度:

if ( $(‘#imageID’).getwidth() == 0 ) {
    alert("Can't find image!"); 
}

如果图像的宽度为0,也可以检查图像的宽度:

if ( $(‘#imageID’).getwidth() == 0 ) {
    alert("Can't find image!"); 
}

@squidbe:谢谢,juquery中有没有这种类型的函数?加载后添加OneError太晚了。@mplungjan,不知道你的意思。它很好用。除非图像标记中没有图像,否则不能将oneror分配给图像标记后面的图像。仅当与服务器的连接时间超过分配时间时,才会触发onerror。如果你不做@mplungjan,啊,我明白你的意思。是的,如果在尝试通过DOM方法动态加载标记以确保在声明onerror处理程序之前未发出请求之间发生大量处理。@squidbe:谢谢,juquery中是否有此类型的函数可用?加载后添加onerror为时已晚。@mplungjan,不知道你的意思。它很好用。除非图像标记中没有图像,否则不能将oneror分配给图像标记后面的图像。仅当与服务器的连接时间超过分配时间时,才会触发onerror。如果你不做@mplungjan,啊,我明白你的意思。是的,如果在尝试通过DOM方法动态加载标记以确保在声明OneError处理程序之前未发出请求之间发生大量处理。我可以使用$('img')的可能重复。错误(函数()在@Romi之后,如果您询问jQuery脚本是否可以比img标记更晚出现在文件中,是的,它肯定可以。@squidbe我还没有测试过这个,但我只希望jQuery onError会触发,如果赋值在domReady-onload上完成,我认为太晚了。我可以使用$('img')。错误(函数()在@Romi之后,如果您询问jQuery脚本是否可以比img标记更晚出现在文件中,是的,它肯定可以。@squidbe我还没有测试过这个,但我只希望jQuery onError会触发,如果在domReady-onload上完成赋值,我认为太晚了