質問: img.height; alert(img_width); alert(img_height); } ``` **問題** iOS Chrome ver49.0.2623.109で上記のコードを実行した場合、 img.srcの値は正しく取得できるのですが、img_widthとimg_heightがどちらも0になります。 Safari、Sleipnir、LunaScapeなどの他ブラウザやPC版のChromeなどでテストをしてみましたが、 どれも正常に値を取得できていました。 解決策や改善コードがあれば是非教えて頂きたいです。 よろしくお願いいたします。 **追記** JSは外部ファイルではなく、直接HTMLのbody内で処理を行っています。 その際、window.load=function(){}で関数を呼び出しています。 ``` ```
回答: もっとスマートな方法(onloadにonloadって。笑)があるかもしれませんが、下記ならいけました! 新規に作成した画像インスタンスの読み込みが完了したら、サイズを取得しにいくイメージです。 ※ios chrome(ブラウザ・OSのver.は同じ条件)のみ検証済みです。 ``` window.onload = function(){ img_width_check(main_img);//画像のid } function img_width_check(main_img){ //現在表示されているwindow上の画像のwidth var now_width = document.getElementById(main_img).width; alert("nowidth = " + now_width); //元画像のサイズを取得 var img = new Image(); img.src = document.getElementById(main_img).src; //var img_width = img.width; //var img_height = img.height; img.onload = function() { alert("img_width = " + img.width); alert("img_height = " + img.height); } } ```