0

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

我试试这段代码:

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

alert(image.width);

但它在 Firefox 中获得图像宽度并在 chrome 中获得 0。

为什么它在 chromica 中不起作用?

4

2 回答 2

2

尝试

image.onload = function() {alert(this.width);}
于 2013-08-03T21:13:01.590 回答
1

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

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

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

于 2013-08-03T21:13:17.300 回答