javascript图像对象无法在chromica中工作

时间:2013-08-03 21:09:38

标签: javascript image object

我想用javascript获取外部图像的宽度。

我试试这段代码:

var image = new Image();
image.src = "1.jpg";

alert(image.width);

但它在firefox中得到图像宽度,在chrome中得到0。

为什么它不适用于chromica?

2 个答案:

答案 0 :(得分:2)

尝试

image.onload = function() {alert(this.width);}

答案 1 :(得分:1)

您尝试在下载图像之前获取宽度。你必须等待,例如:

var image = new Image();
image.onload = function() {
    alert(image.width);
};
image.src = "1.jpg";

请注意,在设置onload 之前挂钩src 非常重要,否则您会遇到竞争条件。尽管JavaScript在浏览器上是单线程的(除非您使用Web工作者),但浏览器却不是。它可以在您设置load后立即触发src事件,并且看不到处理程序,也不会将它们排队等待回调。