Wie bekomme ich die innere Breite eines Elements in jquery OHNE Bildlaufleiste?

Wie erhalte ich bei einem Div mit einer Bildlaufleiste (z. B. b / c of overflow: auto) die genaue innere Breite des Elements? In meinem Beispiel:http://jsfiddle.net/forgetcolor/2J7NJ/ width und innerWidth geben dieselbe Breite an. Die Nummer, die ich möchte, sollte kleiner als 100 sein.

HTML:

<div id='box1'>
<div id='box2'>
</div>
</div>
<p id="w"></p>
<p id="iw"></p>​

CSS:

#box1 { 
    width:100px;
    height:100px;
    overflow:auto;
}

#box2 {
    width:200px;
    height:200px;
    background-color:#aaa;
}

Javascript:

$('#w').text("width is: "+$('#box1').width());
$('#iw').text("inner width is: "+$('#box1').innerWidth());​

Aktualisieren:

Ich brauche dies, um zu arbeiten, wenn die Box2 Div ein großes Bild enthält (es dauert also eine Sekunde, um zu laden). Hier ist ein Beispiel, das eine der folgenden Lösungen integriert (Lukx '), die nicht funktioniert:http://jsfiddle.net/forgetcolor/rZSCg/1/. Irgendwelche Ideen, wie man es dazu bringt, das Laden des Bildes abzuwarten, bevor die Breite berechnet wird?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage