JavaScript-用Javascript获取要加载的图片尺寸时的诡异问题

Web程序数据库 Web程序数据库 主题:1214 回复:2505

JavaScript-用Javascript获取要加载的图片尺寸时的诡异问题

泛泛之交 发布于 2017-06-27 字数 137 浏览 1096 回复 2

代码如下:

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

归属感 2017-10-19 2 楼

把你的代码稍微改一下:

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

这是因为有时候因为IE会缓存图片,第2次加载的图片从缓冲区里加载的,而有时候加载缓冲区的速度太快,以至于没有运行到img.onload的时候,onload事件已经触发了。所以类似ajax那样,在写xmlhttp的时候,都是先指定onstatechange的回调函数,然后再send数据的。所以把onload写到图片src的前面,告诉浏览器如何处理这张图片,再指定这张图片的源。

想挽留 2017-08-24 1 楼

这是一个 bug:

img objects created using createElement fail to trigger the onreadystatechange event if the source file is already stored on the browser's cache. Only if the file is downloaded form the web server you can expect the event to fire up. This ocurrs on IE7, but it probably also happens in IE8. The bad news is that the onload event also has the same problem.

获取图片的宽高,你可以获取这个问题 @javascript获取动态加载图片的宽度和高度?