- ベストアンサー
JavaScript/jQueryで元画像ファイルのサイズの取得方法と対応策
- JavaScript/jQueryを使用して元画像ファイルのサイズを取得する方法について調べています。特定のコードを試してみましたが、コメントアウトすると正確な値が取得できないという不確定な動作があります。この問題に対する対応策を教えてください。
- 質問者はJavaScript/jQueryを使用して元画像ファイルの幅と高さを取得する方法について詳しく知りたいと思っています。質問者は特定のコードの動作について問題があり、コメントアウトすると正確な値が取得できないという現象が発生しています。この問題に対する対応策を教えてください。
- JavaScript/jQueryを使って元画像ファイルのサイズを取得しようとしています。コードを試した結果、コメントアウトすると正確な値が取得できないという問題が発生しています。この問題に対してどのような対応策があるのか教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ANo1です。 Imageオブジェクトにonloadイベントを設定できるみたいなので、こんなのでもいけると思います。 $(function() { var newImg = new Image(); newImg.onload = function() { alert("width=" + newImg.width + " height=" + newImg.height); }; newImg.src = 'subf/' + "HighJinks_Ni.jpg"; }); (質問タイトルがjqueryなので、一応使ってますが、必要性はないですね)
その他の回答 (4)
- steel_gray
- ベストアンサー率66% (1052/1578)
コメントだけ。 >#3 Imageオブジェクトにonloadイベントを imgのonloadはキャッシュの関係(というかIEのせい)で残念な事にアテにできないです。 http://www.keyframe.co.jp/blog/archives/418
- nekomikekamo
- ベストアンサー率73% (71/97)
内容としては、No1さんの通りですね。 読み込む画像が複数ある場合は、下記を参考にするといいかもしれません。 JavaScript Image Preloader http://www.webreference.com/programming/javascript/gr/column3/
- yyr446
- ベストアンサー率65% (870/1330)
全角空白は半角空白になおしてね <script type="text/javascript"> $(function(){ var pW,pH; var newimg=newImg(); var timer = setInterval(function(){ if(newimg.complete){ pW=(newimg.width); pH=(newimg.height); complete(); clearInterval(timer); } },100); function complete(){ alert(pW); alert(pH); } }); function newImg() { newImg = new Image(); newImg.src = 'subf/' + "HighJinks_Ni.jpg"; return newImg; } </script>
- fujillin
- ベストアンサー率61% (1594/2576)
>alert("New Image"); の行をコメントとすると、正確な値得られず0となります 画像を読込むのみ多少の時間がかかる場合、読み込み終了前にサイズを取得しようとすればundifinedや0が返ってくると予想できます。 (alertを実行させると、それが時間稼ぎになっている) 画像の読み込みが終了したかを確認してから、サイズを取得すればよろしいかと。 参考の記述は以下に http://naruken.cweb.tk/labo/java/view4.html