Fre*_*its 5 javascript validation url null json
我在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",
},
Run Code Online (Sandbox Code Playgroud)
有趣的问题!
尝试将图像添加到 div (使用 jQuery,可以使用display:none;隐藏 div )。
然后定期测试图像的属性(使用setInterval循环)是否表明加载成功。定义一个超时时间,之后 setInterval 将自行终止。
此属性适用于在 Chrome 和 Firefox 中测试成功的 img 加载:
naturalHeight != 0
Run Code Online (Sandbox Code Playgroud)
此属性适用于在 IE7、8、9 中测试成功的 img 加载:
fileCreatedDate != ''
Run Code Online (Sandbox Code Playgroud)
对两者进行测试以使其在所有主要浏览器中都能工作。
这是一个小提琴,用于查看加载过程中 props 如何以 10ms 为步长变化。在不同的浏览器中尝试一下!:
http://jsfiddle.net/xGmdP/
在 Chrome 和 FF 中,您甚至可以通过检查所有图像的完整属性来替换 setInterval 循环的超时。但不幸的是,这在 IE 中不起作用(对于无法加载的图像,完整在 IE 中始终保持 false)。
最后这是小提琴的完整代码:
<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>
Run Code Online (Sandbox Code Playgroud)