繁体   English   中英

javascript 检查图像是否存在

[英]javascript check existence of an image

我试图显示图像或静态地图图像取决于图像的存在。 我想将我的图像路径传递给 java 脚本函数,因为路径在我的程序中是动态的。 因此,如果给定路径中不存在图像,则显示静态谷歌地图图像。
我正在使用该代码来执行此操作,但似乎不起作用。 你能帮助我吗?

      function initialize() {
        var img = document.getElementById("super");
        var mdata = $('#image_div');
        var mpath = mdata .data('path');
        img.src =mpath ;

        img.onerror = function( ) {
        document.getElementById("super").style.display = "block";
        alert("failed to load");
    }
    img.onload = function( ) {
        alert("do nothing");
    };
}

这是小提琴: http : //jsfiddle.net/H2gwu/2/ http://jsfiddle.net/H2gwu/3/

固定小提琴: http : //jsfiddle.net/HCC6V/

我修复的一些错误:

  • mdata 后的空格
  • 您打开了一个从未关闭的功能块
  • 您过早声明了 src:如果图像在缓存中,您可能会错过加载事件
  • CSS 中none周围的坏引号
  • 如果找不到图像,则不会调用以显示地图

固定JS:

var img = document.getElementById("super");
var mdata = $('#image_div');
var mpath = mdata.data('path');
img.onload = function( ) {
    alert("do nothing");
}
img.onerror = function( ) {
    document.getElementById("super").style.display = "block";
    alert("failed to load");
    $('#google_map').show();
}
img.src =mpath ;

在 CSS 中:

display: none;

代替

display: "none";

对于可能存在的图像,我发现最优雅的解决方案是使用 $ajax,例如:

$.ajax({
    url: 'your_image.jpg',
    type: "POST",
    dataType: "image",
    success: function() {
        /* function if image exists (setting it in div or smthg.)*/
    },
    error: function(){
       /* function if image doesn't exist like hideing div or setting default image*/
    } 

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM