关于javascript:设置img src属性时宽度和高度不会改变

Width and height not changing when setting img src property

使用 Javascript 更改 \\'s src... 第一次正确设置宽度和高度属性。第二次他们没有改变。为什么?

所以我的页面上有这个空白图片... <img id="imgCropImage" />

所以思路是每次用户上传一张图片,上传者的UploadComplete回调会设置这张图片的src为刚刚上传的图片,这样就可以裁剪了。然后我使用这个图像的高度和宽度属性来创建放大的裁剪预览。

第一次效果很好。浏览器或 DOM 或其他东西会自动设置 img 的高度和宽度属性,我在加载图像后通过 DOM 访问这些属性。很漂亮。

如果用户上传了错误的图片,我想允许他们上传不同的图片。然而,这一次,通过 javascript 访问的 img\\'s width 和 height 属性与之前的图像保持一致。新图像以它自己的宽度和高度正确显示,只是标签的属性不会随着新的src而改变。

有人知道为什么会这样吗?或者更好的是,如何在加载新的 src 时确定性地获取 img 的高度和宽度?

我 <3 stackoverflow 和我 <3 你。


您是否尝试使用新的 src 替换之前的图像?

1
2
3
   var newImg = document.createElement('IMG');
   newImg.src = newSrc;
   oldImg.parentNode.replaceChild(newImg, oldImg);


"移除"高度和宽度属性怎么样。

1
2
$('#imgCropImage').removeAttr('height');
$('#imgCropImage').removeAttr('width');

这应该"重置"它。 (如果您使用的是 JQuery)。