javascript的获取新建Image对象的width第一次为0,刷新一次才行?

js代码如下varimg=newImage();img.src="test.jpg";document.write(img.width);第一次打开浏览器是0,刷新一次即... js代码如下
var img = new Image();

img.src = "test.jpg";

document.write(img.width);
第一次打开浏览器是0,刷新一次即可,研究了半天可能是缓存加载问题,与onload有关,请问如何获取图片加载完之后的正确width信息。感谢!
展开
 我来答
hjiuokpl1314
推荐于2016-03-05 · 超过16用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:35.4万
展开全部
var img = new Image();
img.onload = function(){
document.write(img.width);
}
img.src = "test.jpg";

试试这样
更多追问追答
追问
感谢,这样是可以显示的,但浏览器一直处于加载缓存状态,且我想把width值读到一个变量里,如下:
var t=0;
img.src = "image/1.jpg";
img.onload=function(){t=img.width;}
document.write(t);

这样写还是不行
追答
处于加载状态是不是因为图片太大了

2. 你要设置到某个变量里面你这样子写肯定是不行的,而且你上面的代码有个问题是:
a. onload的方法必须定义在赋值src之前
b.最后你document.write的时候有可能图片还没有加载完,所以t还是0

你需要做的是,把onload方法提前到赋值之前。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rudy阿肖
2014-05-16
知道答主
回答量:40
采纳率:0%
帮助的人:24.9万
展开全部
把函数写在body的onload事件里面呢
追问
感谢回答,这样可以,如上面那个兄弟给出的代码,但是得不到返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式