[英]How to validate a content in URL (Javascript)
我在JSON feed中有URL,每個URL包含一個圖像。 我想驗證那些有圖像或沒有圖像的URL(NULL)。 如何使用javascript驗證這一點。 因為我是初學者,我不知道,如何驗證這一點。 謝謝
JSON feed with image n NULL
{
previewImage:"http://123.201.137.238:6060/feed/videoplay/Jackie.png",
},
{
previewImage:"http://www.snovabits.net/feed/ImageMI/WarCraft.jpg",
},
有趣的問題!
嘗試將圖像添加到div(使用jQuery,可以使用display:none;隱藏div)。
然后定期測試圖像的屬性(使用setInterval循環),無論它們是否表示成功加載。 定義一些超時,之后setInterval將自行終止。
此屬性適用於在Chrome和Firefox中測試成功的img加載:
naturalHeight != 0
此屬性適用於在IE7,8,9中測試成功的img加載:
fileCreatedDate != ''
測試兩者以使其適用於所有主流瀏覽器。
這是一個小提琴,看看道具在加載過程中如何以10毫秒的步長變化。 在不同的瀏覽器中嘗試!:
http://jsfiddle.net/xGmdP/
在Chrome和FF中,您甚至可以通過檢查所有圖像的完整屬性來替換setInterval循環的超時。 但不幸的是,這在IE中不起作用(對於無法加載的圖像,IE中的完全始終保持錯誤)。
最后這里是小提琴的完整代碼:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/JavaScript"></script>
<script type="text/JavaScript">
$(function(){
$('#images').prepend('<img id="img1" src="http://123.201.137.238:6060/feed/videoplay/Jackie.png">')
$('#images').prepend('<img id="img2" src="http://www.snovabits.net/feed/ImageMI/WarCraft.jpg">')
setInterval(test, 10);
})
function test(){
var props=['naturalHeight', 'complete', 'fileCreatedDate', 'clientHeight', 'offsetHeight', 'nameProp', 'sourceIndex'];
for(i in props){
var pr = props[i];
$('#testresults').append('1:'+pr+' = ' + $('#img1').prop(pr)+'<br>');
$('#testresults').append('2:'+pr+' = ' + $('#img2').prop(pr)+'<br>');
}
$('#testresults').append('---<br>');
}
</script>
</head>
<body>
<div id="images"><div>
<div id="testresults"></div>
</body>
</html>
如果你想檢查字符串是否為空,只需執行if(previewImage == "") { /* image is null, do stuff */ }
但如果要檢查圖像是否實際存在,我建議執行GET請求通過AJAX並檢查HTTP響應,例如:(jQuery):
$.ajax({
url: "http://123.201.137.238:6060/feed/videoplay/Jackie.png",
cache: false,
error: function(){
alert("image doesn't exist!");
}
});
但如果可能的話,做這個服務器端會更“好”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.