色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 判斷圖片是否存在

劉柏宏1年前12瀏覽0評論

在開發(fā)網(wǎng)頁中,我們經(jīng)常需要判斷某張圖片是否存在。比如:當(dāng)用戶上傳頭像之后,我們需要先檢測上傳的圖片是否合法,如果用戶上傳的是一張人造圖片,我們需要將其替換成默認(rèn)頭像。

在Javascript中,我們可以使用Image對象來判斷圖片是否存在。該對象有一個complete屬性,當(dāng)圖片加載完成時,complete屬性值為true。如果圖片加載失敗或者圖片路徑錯誤,則complete屬性為false。

var img = new Image();
img.src = "http://example.com/test.jpg";
if (img.complete) {
alert("圖片存在");
} else {
alert("圖片不存在或者路徑錯誤");
}

使用Image對象判斷圖片存在的方法,雖然簡單,但是存在一個問題:當(dāng)圖片已經(jīng)存在于緩存中時,complete屬性值為true。無法判斷圖片是否真正存在于服務(wù)器中。因此,我們需要一個更加嚴(yán)格的判斷方式。

下面是一個使用Ajax請求判斷圖片是否存在的例子:

function checkImageExists(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (xhr.status !== 404) {
callback(true);
} else {
callback(false);
}
};
xhr.onerror = function() {
callback(false);
};
xhr.open("HEAD", url);
xhr.send();
}
checkImageExists("http://example.com/test.jpg", function(exists) {
if (exists) {
alert("圖片存在");
} else {
alert("圖片不存在或者路徑錯誤");
}
});

通過發(fā)起HEAD請求來判斷圖片是否存在于服務(wù)器中,如果返回的狀態(tài)碼為404,則說明圖片不存在。需要注意的是,由于使用了Ajax方式獲取圖片,因此需要考慮跨域問題。

總的來說,判斷圖片是否存在是網(wǎng)頁開發(fā)中一個常見的問題。我們可以使用Image對象或者Ajax請求的方式進(jìn)行判斷。根據(jù)實際需求,選擇不同的判斷方式。