PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JS: Größe eines Divs in iFrame auslesen


BigRob
2010-11-24, 12:59:50
Hi Leute,

ich möchte die Höhe eines Divs welches sich in einem Dokument in einem iFrame befindet auslesen.

Leider bekomm ich das nicht selbst hin, des halb frag ich euch experten hier!

Mein iFrame im Hauptdokument:

<div id="content">
<iframe id="fenster1" class="Fenster" src="News/news.html"
name="Fenster" frameborder="0" onload="divHoehe()">
</iframe>
</div>

Der Div im iFrame-Dokument:

<div id="text" name="text">
Inhalt
</div>

Mein "Versuch" die Höhe zuermitteln:

function divHoehe() {
var height =
window.getElementsByName("Fenster").document.text.offsetHeight;
}


Wo liegt der Fehler? Bzw. ist so etwas überhaupt möglich?

Im Voraus vielen Dank!

darph
2010-11-24, 14:32:33
Wenn du dich mit jQuery auseinandersetzen willst, geht's so:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
</head>
<body>
<iframe src="http://lalala/" width="80%" height="600" id='frameDemo'></iframe>
<script>$("#frameDemo").contents().find("a").css("background-color","#BADA55");</script>

</body>
</html>

Beachte aber, daß beide Seiten von der gleichen Domain kommen müssen.

DanMan
2010-11-24, 20:39:53
Oder so:
window.Fenster.document.getElementById('text')

Dein Denkfehler besteht jedenfalls darin, dass der Inhalt des iframes nicht Teil des documents ist, sondern eines eigenen Fensters - das in diesem Fall "Fenster" heißt. Wie es bei einem Popup auch wäre.

BigRob
2010-11-24, 22:17:42
Ach danke, stimmt, mein Fehler.

Allerdings macht das FireFox nicht mit. warum auch immer...

BigRob
2010-12-02, 16:12:36
FireFox sagt:


Fehler: Erlaubnis zum Lesen der Eigenschaft Window.document wurde verweigert:


var height = window.Fenster.document.getElementById('text').offsetHeight;

Warum? IE macht das doch problemlos.

darph
2010-12-02, 16:41:55
Gleiche Domain?

DanMan
2010-12-02, 19:55:11
Warum? IE macht das doch problemlos.
https im iframe?

BigRob
2010-12-03, 09:29:47
nein, kein https.
einfaches http ...

ja, gleiche domain