当我动态创建img标签的src属性时,有没有一种方法可以使用JavaScript测试src(图像所在的路径)是否实际存在,以避免出现以下情况:
当我动态创建img标签的src属性时,有没有一种方法可以使用JavaScript测试src(图像所在的路径)是否实际存在,以避免出现以下情况:
你可以使用error
事件:
var im = document.getElementById('imageID'); // or select based on classes
im.onerror = function(){
// image not found or change src like this as default image:
im.src = 'new path';
};
内联版本:
<img src="whatever" onError="this.src = 'new default path'" />
或者<img src="whatever" onError="doSomething();" />
<img>
标签支持以下事件:
abort
(onAbort)error
(onError)load
(onLoad)更多信息:
onError
才隐藏图像,从而导致损坏的图标闪烁。
<img src="somephoto.png" style="visibility:hidden;" onload="this.style.visibility='visible'" />
- tropicalfish您可以通过使用head
方法进行先前的 AJAX 调用,并查看服务器返回代码,
或者您可以使用onerror
事件更改网址或将其隐藏,例如:
<img src="notexist.jpg" onerror="this.style.visibility = 'hidden'">
(我使用内联属性只是为了解释这个概念)
如果您使用JavaScript动态创建src,则可以使用以下代码:
var obj = new Image();
obj.src = "http://www.javatpoint.com/images/javascript/javascript_logo.png";
if (obj.complete) {
alert('worked');
} else {
alert('doesnt work');
}
简单易懂
var x = new XMLHttpRequest(); x.open("get", "your_url.com/image.ext or /image.png or image.jpg", true);x.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) {alert('exist');}else{alert('does not exist'};}; x.send();
file_exists()
)。src=
属性,并检查文件是否存在,提供替代方案。