2011-09-16 3 views
0

は、私はjQueryのを使用せずに画像の幅と高さを見つけるために行うことができますJavaScript(Internet Explorer)でスタイル設定されていない画像の幅を調べるにはどうすればよいですか?

img = document.createElement("img"); 
    img.src = "MahImage.jpg"; 
    x.appendChild(img); 

以下のあなたが持っている想像してみて?

私は現在、すべてのインテリジェントなブラウザのため正常に動作します.widthを、使用していますが、私は、画像のロードのあなたがプロパティwidthheightにアクセスすることができた後

+0

どのバージョンのIEがこれで機能していませんか?それは私のために8で動作し、私は古いバージョンで動作していたと確信しています。 – Matt

+0

私はIE7を使用していて、それが好きではないようです。 – DeadlyBacon

+0

私はIE7が嫌いです:) – antyrat

答えて

0

IEを幸せにする方法を見つける必要があります。例えば

alert(img.height + img.width); 

また、あなたがイメージがonload hanlerを使用してロードされているかどうかを知るためにプロパティにclientHeightclienWidth

を使用して画像のサイズを取得することができます。

あなたは画像のwidthheightプロパティにアクセスすることができますが、画像が読み込まれた後、彼らは唯一の有益な値を返します

img = document.createElement("img"); 
img.src = "MahImage.jpg"; 
img.onload = imageproperties; 
x.appendChild(img); 

function imageproperties() { 
    alert(img.height + img.width); 
} 
+0

これは知的ブラウザでうまくいきますが、これは私が今やっていることですが、実際にはInternet Explorerで動作する解決策が必要です*編集の質問*) – DeadlyBacon

+0

試してみてください 'clientHeight'と 'clientWidth' – antyrat

+0

それは何を返しますか? – antyrat

0

例えば、あなたは画像のonloadイベントの中でそれらにアクセスしたいだけです(またはそれを読み込むのに妥当な時間を与えてください)。

img = document.createElement("img"); 
img.onload = function() { 
    this.height; 
    this.width; 
}; 
img.src = "MahImage.jpg"; 
x.appendChild(img); 

あなたは、これはここで働く見ることができます:http://jsfiddle.net/aS7a7/

0

あなたはそれがロードを完了された後まで、画像の高さ/幅を見つける傾けるので、これはトリッキーです。つまり、画像の読み込みにコールバックが必要です。

var img = document.createElement("img"); 
img.src = "MahImage.jpg"; 
img.onload = imageReady; 
x.appendChild(img); 

var imageReady = function() { 
    alert(img.height); 
    alert(img.width); 
} 
0

画像が読み込まれるまで待つ必要があります。ここにコードがあります(Chromeでテスト済み):

img = document.createElement("img"); 
img.src = "http://google.ru/logos/2011/Albert_Szent_Gyorgyi-2011-hp.jpg"; 
img.onload = function(){ 
    console.log(img.width, img.height); 
} 
document.getElementsByTagName('body')[0].appendChild(img); 
関連する問題