2011-09-18 124 views
2

我正在尝试在需要加载三个图像之一的页面中写入一些javascript。首先,它需要检查图片的缩略图是否存在,并显示如果缩略图不存在,检查full_size图像并显示(缩小)图像,如果缩略图或全尺寸图像都不存在,使用noimage.gif作为一个小占位符。什么是最有效的方式来做到这一点?检查是否存在缩略图和图像

有些规定,不能做服务器端,因为没有服务器。这个java脚本将作为一个插入到kml文件中。我正在绘制一个光纤网络,这是针对手孔部分的。基本上,每个地标都有1到5张图片,图片名称与每张图片后面的-1,-2,-3等地标名称相同。因此,这些地标中的每一个都从相同的气球样式中获得它的样式....并且我用这个气球样式编写的html调用img src =“./ images/$ [name] -1.jpg”width =“120px”height =“100px”其中$ [name]插入地标的名称。这将允许用户在更新kml文件并添加新的地标时,他们所要做的就是重命名jpeg以匹配地标的名称,并在其末尾添加-1并将其转储到images文件夹中....使得用户不必编辑任何html(这对他们来说是太多了)

回答

1

我会在服务器上执行检查,然后让服务器提供一个资源路径可用的图像。

+0

嗯....我想我应该有更多的解释。该文件将在本地访问,它实际上将成为本地KML文件中的一部分。没有服务器后端工作。我基本上有一个包含数千个地标的kml文件,并且有一个命名约定。当我提供给客户时,他们将会更新这个东西,而他们的一些用户不会理解缩略图的概念(我知道这很荒谬)。 – renosis

-1

我同意@Jason院长, 但是,如果你想通过使用JavaScript来检测它,我会做像这样: 当越来越缩略图我会附上某种ID /类属性的它和检查如果它存在。如果 “IMG-tumb” 的ID存在

检查:

var imgThumb = document.getElementById("img-thumb"); 
if (imgThumb != null){ 
    alert("Thumbnail exists"); 
}else{ 
//Check Image size... 

我们检查图像尺寸:(否则最后,如果后放置)

var img = document.getElementById('your_image_id'); 
var height = img.clientHeight; 
var width = img.clientWidth; 

后改变高度检测到图像高度:

img.style.height = height-50;//Substracks 50 pixles from the original size 
img.style.width = width-50;//Substracks 50 pixles from the original size 

对于你的压轴事件(当没有检测到),我wo uld使用与第一阶段相同的检查。

完整代码:

var imgThumb = document.getElementById("img-thumb"); 
var imgFull = document.getElementById("img-full");//Full sized image 
    if (imgThumb != null){ 
     alert("Thumbnail exists"); 
    }else if(imgFull != null){ 
    //Check Image size... 
    alert("Full sized image exists"); 
    var img = document.getElementById('your_image_id'); 
    var height = img.clientHeight; 
    var width = img.clientWidth; 
    img.style.height = height-50;//Substracks 50 pixles from the original size 
    img.style.width = width-50;//Substracks 50 pixles from the original size 

    }else{ 
    //Place noimage.gif 
} 
+1

您正在检查DOM元素是否存在,这与检查实际图像是否存在完全不同。 –

+0

如果他想要查找图像是否在服务器上,那么他不能使用Js。另一方面,如果他从服务器端用img标签获得某种输出,那么这就是他将尝试使用的。 – funerr