内容
Javascriptで、「現在画面に表示されている画像のwidth」と
「元画像のwidthを比較するコード」を書いています。
クロスブラウザに対応するため、一旦新しいImageオブジェクトを生成し、
元画像のsrcからwidthを引っ張ってきています。
関数img_width_checkは、window.load時に実行されます。
問題のコードは以下の通りです。
Javascript
1function img_width_check(main_img){ 2 //現在表示されているwindow上の画像のwidth 3 var width =document.getElementById(main_img).width; 4 5 //元画像のサイズを取得 6 var img = new Image(); 7 img.src = document.getElementById(main_img).src; 8 var img_width = img.width; 9 var img_height = img.height; 10 11 alert(img_width); 12 alert(img_height); 13} 14
問題
iOS Chrome ver49.0.2623.109で上記のコードを実行した場合、
img.srcの値は正しく取得できるのですが、img_widthとimg_heightがどちらも0になります。
Safari、Sleipnir、LunaScapeなどの他ブラウザやPC版のChromeなどでテストをしてみましたが、
どれも正常に値を取得できていました。
解決策や改善コードがあれば是非教えて頂きたいです。
よろしくお願いいたします。
追記
JSは外部ファイルではなく、直接HTMLのbody内で処理を行っています。
その際、window.load=function(){}で関数を呼び出しています。
HTML
1<script type="text/javascript"> 2 3window.onload = function(){ 4 img_width_check(main_img);//画像のid 5} 6 7function img_width_check(main_img){ 8 //現在表示されているwindow上の画像のwidth 9 var width =document.getElementById(main_img).width; 10 11 //元画像のサイズを取得 12 var img = new Image(); 13 img.src = document.getElementById(main_img).src; 14 var img_width = img.width; 15 var img_height = img.height; 16 17 alert(img_width); 18 alert(img_height); 19} 20</script>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/06 01:03