Seperti yang dinyatakan sebelumnya, jawaban Xavi tidak akan berfungsi jika gambar ada di cache. Masalahnya menanggapi webkit yang tidak memecat acara pemuatan pada gambar yang di-cache, jadi jika attrs lebar / tinggi tidak diatur secara eksplisit dalam tag img, satu-satunya cara yang dapat diandalkan untuk mendapatkan gambar adalah dengan menunggu window.load
acara dipecat.
The window.load
acara akan api selalu , sehingga aman untuk mengakses lebar / tinggi dari dan img setelah itu tanpa trik apapun.
$(window).load(function(){
//these all work
$('img#someId').css('width');
$('img#someId').width();
$('img#someId').get(0).style.width;
$('img#someId').get(0).width;
});
Jika Anda perlu mendapatkan ukuran gambar yang dimuat secara dinamis yang mungkin di-cache (dimuat sebelumnya), Anda dapat menggunakan metode Xavi ditambah string kueri untuk memicu penyegaran cache. The downside adalah bahwa hal itu akan menyebabkan permintaan lain ke server, untuk img yang sudah di-cache dan harus sudah tersedia. Webkit Bodoh.
var pic_real_width = 0,
img_src_no_cache = $('img#someId').attr('src') + '?cache=' + Date.now();
$('<img/>').attr('src', img_src_no_cache).load(function(){
pic_real_width = this.width;
});
ps: jika Anda sudah memiliki QueryString img.src
, Anda harus menguraikannya dan menambahkan param tambahan untuk menghapus cache.