- 主题:求问用javascript判断图像文件是否存在以统计图片个数的问题?
代码如下:
function imgCount(imgpath) //统计路径imgpath下所有jpg图片(图片命名方式是1.ipg,2.jpg,以此类推)的个数
{
var img_num = 1;
var img = new Image();
img.src = imgpath + "/" + img_num + ".jpg";
while(img.width >0)
{
img_num++;
var img = new Image();
img.src = imgpath + "/" + img_num + ".jpg";
}
return img_num-1;
}
k=imgCount("image");//统计图像个数
//以下以动态表格形式显示图片
document.write("<table border=1>");
for(var i = 0; i <= (k-(k % 4))/4; ++i)
{
document.write("<tr>");
for(var j = 1; j <= 4; ++j)
{
if((i*4+j)<=k)
document.write("<td>" + "<img title='单击此查看原图' src='image/"+(i*4+j)+".jpg' height='200' /> ");
else document.write("<td>");
}
}
问题是在firefox下打开每刷新一次多处一张图片,在IE11下则是刷新半天出来某几张图片,总是不能全部显示,请问哪里出错,感谢!
--
修改:ocaml FROM 202.127.200.*
FROM 202.127.200.*
乱死了你写的这个码。。。不知所云
--
FROM 221.122.119.*
。。。。。。
【 在 wopie 的大作中提到: 】
: 乱死了你写的这个码。。。不知所云
--
FROM 202.127.200.*
发现可能是缓存问题,测试js代码如下
var img = new Image();
img.src = "test.jpg";
document.write(img.width);
第一次打开浏览器是0,刷新一次即可,研究了半天可能是缓存加载问题,还不知道如何解决
【 在 ocaml 的大作中提到: 】
: 代码如下:
: function imgCount(imgpath) //统计路径imgpath下所有jpg图片(图片命名方式是1.ipg,2.jpg,以此类推)的个数
: {
: ...................
--
FROM 202.127.200.*
加载图片是异步的,你不能把 js 当成一个同步语言来用……
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 代码如下:
: function imgCount(imgpath) //统计路径imgpath下所有jpg图片(图片命名方式是1.ipg,2.jpg,以此类推)的个数
: {
: ...................
--
FROM 211.99.222.*
呵呵。。这就是我前两天问的那个问题。
通过监听onload搞定了。不过已经在缓存中的图片没有onload,需要判断是一个img.complete。
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 代码如下:
: function imgCount(imgpath) //统计路径imgpath下所有jpg图片(图片命名方式是1.ipg,2.jpg,以此类推)的个数
: {
: ...................
--
FROM 59.57.166.*
明白道理,不知道解决方案
【 在 vonNeumann 的大作中提到: 】
: 加载图片是异步的,你不能把 js 当成一个同步语言来用……
:
--
FROM 202.127.200.*
请教如何监听
写了个测试函数如下,还是需要刷新一次浏览器才能看到width,
function checkImg(theURL)
{
var img1= new Image();
img1.src = theURL;
if (img1.complete) document.write(img1.width);
else setTimeout(checkImg(' + theURL + '), 100) ;
}
【 在 hgoldfish 的大作中提到: 】
: 呵呵。。这就是我前两天问的那个问题。
: 通过监听onload搞定了。不过已经在缓存中的图片没有onload,需要判断是一个img.complete。
:
--
FROM 202.127.200.*
img.onload = function(){};
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 请教如何监听
: 写了个测试函数如下,还是需要刷新一次浏览器才能看到width,
: function checkImg(theURL)
: ...................
--
FROM 59.57.166.*
这个知道,但不明白具体用法,如下加载完之后得到width信息还是不能显示,请教
var t=0;
img.src = "image/1.jpg";
img.onload=function(){t=img.width;}
document.write(t);
【 在 hgoldfish 的大作中提到: 】
: img.onload = function(){};
:
--
FROM 202.127.200.*