我想用javascript获取外部图像的宽度。
我试试这段代码:
var image = new Image();
image.src = "1.jpg";
alert(image.width);
但它在firefox中得到图像宽度,在chrome中得到0。
为什么它不适用于chromica?
答案 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
事件,并且看不到处理程序,也不会将它们排队等待回调。