我正在使用 jQuery 构建一个网站。两件大事:
- 我想手动更改图片(图像 src),但有时图片没有更改(我现在正在使用 chrome,但我想要一个通用的解决方案)。
- 另外,我想在加载图片后获取图像宽度+高度。(图片是来自服务器的文件 - 我只是使用不同的文件名)。
当通过 JavaScript/jQuery 更改图像时 - 我意识到当我更改一次图像时,它会保存在内存中,所以我遇到了一些问题。
我发现由于缓存问题,第二次没有上传图像,所以当我做了一些解决方法时,我意识到我需要执行 JavaScript 命令,例如:
$("#id_image").attr("src", "pictures\\mypicture.jpg" + "?" + Math.random());
这就是我手动更改图像的方式。
通过使用Math.random()
我遇到了第二个问题:
如果我Math.random()
在行前写:
$("#id_image").width("auto");
$("#id_image").height("auto");
使用后我没有得到高度+宽度Math.random()
,所以我换了一行,最后我的代码是:
$("#id_image").width("auto");
$("#id_image").height("auto");
$("#id_image").attr("src", "pictures\\mypicture.jpg");
$("#id_image").attr("src", "pictures\\mypicture.jpg" + "?" + Math.random());
alert("#id_image").width()); // **** returns 0 sometimes due cache
alert("#id_image").height()); // **** returns 0 sometimes due cache
尽管如此,我还是有一些问题(见星号注释),我不知道如何总是得到加载图像的宽度+高度。