• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Höhe einer Website mittels javascript variabel definieren

M

mcdutch

Guest
Ich habe eine Website in der ich zwei verschiedene Javascript-Dateien laufen habe, die das selbe machen (höhe definieren). Leider überschreibt eines das andere, wodurch die Höhe der Website nicht, wie gewünscht ist. Das Script selbst kann ich leider nicht entfernen, weil ich Inhalte über ein iframe einfüge. Und einer der iframe-Inhalte auch auf anderen Seiten vertreten ist und somit diese auch ändern würde.


Frage mich jetzt, wie ich das Script umschreiben kann. Ich müsste eigentlich nur die Variable Buffer so definieren, dass sich die Größe dem Inhalt anpasst. Nur wie kann ich dies bewerkstelligen? Hat jemand eine Idee, wie ich das bewerkstelligen kann?

Dieses Script sorgt dafür, dass meine Website eine gewisse Höhe hat.


Code:
<script type="text/javascript">
function pageY(elem) {
    return elem.offsetParent ? (elem.offsetTop + pageY(elem.offsetParent)) : elem.offsetTop;
}
[B]var buffer = -3000;[/B] //scroll bar buffer
function iFrameHeight() {
    var height = document.documentElement.clientHeight;
    height -= pageY(document.getElementById('blockrandom'))+ buffer ;
    height = (height < 0) ? 0 : height;
    document.getElementById('blockrandom').style.height = height + 'px';
}
document.getElementById('blockrandom').onload=iFrameHeight;
window.onresize = iFrameHeight;
 
</script>


Und das ist mein altes Script, welches die Höhe überschreibt:


Code:
<script type="text/javascript">
function iFrameHeight()
{
    var h = 0;
    if (!document.all)
    {
        h = document.getElementById('blockrandom').contentDocument.height;
        document.getElementById('blockrandom').style.height = h + 60 + 'px';
    } else if (document.all)
    {
        h = document.frames('blockrandom').document.body.scrollHeight;
        document.all.blockrandom.style.height = h + 20 + 'px';
    }
}
</script>
 
Wie schon im anderen Thread geschrieben, ist der "neue" Code sinnfrei. (Wenn man die Fenstergröße veränder, wird das iFrame immer größer...)
Der Alte funktioniert nur, wenn die SOP nicht im Weg ist.

Warum definierst du die Höhe des iFrames nicht gleich direkt im HTML korrekt? Dynamisch funktioniert das ja sowieso nicht, wenn die SOP im Weg ist... oder hast du doch Kontrolle über den exakten HTML-Code beider Domains?

PS: document.all kannst du getrost vergessen. Jeder halbwegs moderne Browser unterstützt document.getElementById()...
 
Wie schon im anderen Thread geschrieben, ist der "neue" Code sinnfrei. (Wenn man die Fenstergröße veränder, wird das iFrame immer größer...)
Der Alte funktioniert nur, wenn die SOP nicht im Weg ist.

Warum definierst du die Höhe des iFrames nicht gleich direkt im HTML korrekt? Dynamisch funktioniert das ja sowieso nicht, wenn die SOP im Weg ist... oder hast du doch Kontrolle über den exakten HTML-Code beider Domains?

PS: document.all kannst du getrost vergessen. Jeder halbwegs moderne Browser unterstützt document.getElementById()...


Das würde ich gerne machen, aber ist leider nicht möglich, weil Inhalte über Module (bzw. mit iframe) in die Seite geladen werden. Das heißt, dass ich die Höhe der Basisseite ändern müsste, was mir aber dann für alle anderen Seiten eine falsche Höhe definieren würde.


Das heißt ich brauche ohnehin eine andere Lösung, als dieses Script, weil das ohnehin keine elegante Lösung ist. Nun habe ich folgende Ausgangssituation: Meine Website hat eine Höhe von 1368 px definiert. Wenn ich jetzt einen Menüpunkt wähle, dann habe ich logischerweise wieder 1368 px Höhe. Bei dem Menüpunkt wird mir auf einen definierten Bereich nun der Iframe reingeladen. Ich möchte, dass meine Seitenhöhe sich der Höhe des iframes anpasst, weil ich sonst 2 Bildlaufleisten habe was sehr unschön wäre.

Wie kann ich dieses Problem lösen?
 
Weißt du die genaue Höhe des iFrames? Ist die fest?

Und du hast immer noch nicht auf
geantwortet.

Wenn die Antwort immer Nein ist, dann kannst du dein Problem gar nicht lösen.


Die Höhe des iFrames ist variabel. Und ich habe leider nur Kontrolle über den eigenen Domain-Code. Sonst würde ich die Daten des anderen Codes ja auch eher mit XML einfügen, weil es ein elektronischer Katalog ist.
 
Dann wird das eher nichts werden. Entweder du machst das iFrame so groß, dass der Inhalt immer rein passt, aber dann ist es meistens viel zu groß, oder du machst es so klein, dass die äußere Seite keinen Scrollbalken mehr hat (ich denke, dein "neuer" Code ist dafür gedacht).
 
Zurück
Oben