Javascript 如何仅在新图像实际可用时刷新图像源? 设置间隔(函数刷新雷达(){ document.getElementById(“content14”).src=”http://api.wunderground.com/api/MyAPIkey/animatedradar/q/autoip.gif?&radius=90&num=15&delay=20&width=430&height=500&smooth=1&newmaps=1&interval=15&rainsnow=1" }, 900000);
我使用上面的代码大约每15分钟刷新一次网站上的weather radar.gif图像。这通常效果很好,但有时当刷新发生时,图像从其源中断开,并且我的站点有一个中断的图像图标,直到大约15分钟后进行下一次刷新。我想进行设置,以便在刷新功能运行时,如果请求的图像已损坏或不可用,我会保留已加载的图像,而不是将其替换为损坏的图像图标。我愿意使用任何javascript或Jquery来实现这一点,但我是一个新手程序员,因此如果您能分解任何复杂的代码,我将不胜感激。谢谢 你可以试试这样的东西Javascript 如何仅在新图像实际可用时刷新图像源? 设置间隔(函数刷新雷达(){ document.getElementById(“content14”).src=”http://api.wunderground.com/api/MyAPIkey/animatedradar/q/autoip.gif?&radius=90&num=15&delay=20&width=430&height=500&smooth=1&newmaps=1&interval=15&rainsnow=1" }, 900000);,javascript,jquery,image,src,Javascript,Jquery,Image,Src,我使用上面的代码大约每15分钟刷新一次网站上的weather radar.gif图像。这通常效果很好,但有时当刷新发生时,图像从其源中断开,并且我的站点有一个中断的图像图标,直到大约15分钟后进行下一次刷新。我想进行设置,以便在刷新功能运行时,如果请求的图像已损坏或不可用,我会保留已加载的图像,而不是将其替换为损坏的图像图标。我愿意使用任何javascript或Jquery来实现这一点,但我是一个新手程序员,因此如果您能分解任何复杂的代码,我将不胜感激。谢谢 你可以试试这样的东西 <!--
<!--WunderGroundRadar-->
<script type = "text/javascript">
setInterval(function refreshRadar() {
document.getElementById("content14").src = "http://api.wunderground.com/api/MyAPIkey/animatedradar/q/autoip.gif?&radius=90&num=15&delay=20&width=430&height=500&smooth=1&newmaps=1&interval=15&rainsnow=1"
}, 900000);
</script>
设置间隔(函数刷新雷达(){
img=新图像();
img.onload=函数(){
document.getElementById(“content14”).src=img.src;
};
img.src=”http://api.wunderground.com/api/MyAPIkey/animatedradar/q/autoip.gif?&radius=90&num=15&delay=20&width=430&height=500&smooth=1&newmaps=1&interval=15&rainsnow=1"
}, 900000);
它尝试将源加载到临时图像,并且仅在成功将assings source加载到“content14”后,才会将该图像提取到其他dom元素(例如隐藏)图像中,并且仅在确认新图像已正确加载后才替换显示的图像。您能定义“未工作”吗?发生了什么错误?图像没有加载?
<script type = "text/javascript">
setInterval(function refreshRadar() {
img = new Image();
img.onload = function(){
document.getElementById("content14").src = img.src;
};
img.src = "http://api.wunderground.com/api/MyAPIkey/animatedradar/q/autoip.gif?&radius=90&num=15&delay=20&width=430&height=500&smooth=1&newmaps=1&interval=15&rainsnow=1"
}, 900000);
</script>