- 主题:求问用javascript判断图像文件是否存在以统计图片个数的问题?
你换个思路啊。
function (){
console.debug(img.width);
//事件都放在这里面做不就成了。
}
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 这个知道,但不明白具体用法,如下加载完之后得到width信息还是不能显示,请教
: var t=0;
: img.src = "image/1.jpg";
: ...................
--
FROM 59.57.166.*
掉沟里了吧。write写onload函数里啊
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 这个知道,但不明白具体用法,如下加载完之后得到width信息还是不能显示,请教
: var t=0;
: img.src = "image/1.jpg";
: ...................
--
FROM 114.249.234.*
新手比较弱 见笑 再次感谢
【 在 hgoldfish 的大作中提到: 】
: 你换个思路啊。
: function (){
: console.debug(img.width);
: ...................
--
FROM 202.127.200.*
试过,直接在网页显示img.width没问题,但是没法用变量保存img.width以供后续判断用
【 在 Eliot 的大作中提到: 】
: 掉沟里了吧。write写onload函数里啊
--
FROM 202.127.200.*
肯定可以。主要是你得保证你这个“以后”是在img加载完之后
【 在 ocaml (唵嘛呢叭咪吽) 的大作中提到: 】
: 试过,直接在网页显示img.width没问题,但是没法用变量保存img.width以供后续判断用
--
FROM 114.249.234.*
就是这个关键 还不知道如何解决 还望不吝赐教
或者知道路径中图片命名方式是1.jpg,2.jpg,...有没有别的方法可以统计图片个数?
【 在 Eliot (好警察) 的大作中提到: 】
: 肯定可以。主要是你得保证你这个“以后”是在img加载完之后
--
FROM 183.129.198.*
var img,
totalNumber = 0;
function count( i ){
img = new Image();
img.src = i + ".jpg";
img.onload=function(){
if (img.width) {
totalNumber++;
count( ++i );
}
}
img.onerror=function(){
alert(totalNumber);
}
}
count( 1 );
在count函数里把你的filepath和/加上,不用谢
--
FROM 124.126.195.*
感谢大神,这样果然可以得到图片的计数,但是不想用alert信息,想使用变量保存这个totalNumber,不知道onerror函数返回值怎么搞,太菜了,还望赐教
【 在 sitepenfan 的大作中提到: 】
: var img,
: totalNumber = 0;
: function count( i ){
: ...................
--
FROM 202.127.200.*
用个笨方法解决了,不把totalNumber传值出来,把原先动态显示表格的代码写到onerror函数里也能实现,再次感谢大神
【 在 ocaml 的大作中提到: 】
: 感谢大神,这样果然可以得到图片的计数,但是不想用alert信息,想使用变量保存这个totalNumber,不知道onerror函数返回值怎么搞,太菜了,还望赐教
【 在 sitepenfan 的大作中提到: 】
: var img,
: totalNumber = 0;
: function count( i ){
: ...................
--
FROM 202.127.200.*
【 在 ocaml 的大作中提到: 】
: 感谢大神,这样果然可以得到图片的计数,但是不想用alert信息,想使用变量保存这个totalNumber,不知道onerror函数返回值怎么搞,太菜了,还望赐教
反回不了的啊,前面有人说的对,图片加载是异步的,但是你的js主线程是停不下来等的
我觉得有两种选择,
1是你把剩余的逻辑都扔onerror里,像这样
img.onerror=function(){
doMyLogic(totalNumber);
}
2的话就是在主程序里注册一个延迟执行用来同步‘异步执行’,dojo里叫deferred,jquery里不知道叫啥,估计不是deferred就是promise。
var img,
totalNumber = 0,
deferred = new Deferred();
function count( i ){
img = new Image();
img.src = i + ".jpg";
img.onload=function(){
if (img.width) {
totalNumber++;
count( ++i );
}
}
img.onerror=function(){
alert(totalNumber);
deferred.resolve(totalNumber);
// 这句会调用下面一行参数里的方法,把totalNumber赋值给totalN
}
}
deferred.then(function(totalN){...});
count( 1 );
deferred具体使用google即可
--
FROM 124.126.194.*