Iframe automatisch scrollen?
Man kann ja mit window.scrollTo zu einem bestimmten Punkt scrollen. Aber wie wende ich das bei einem iFrame an, wenn ich den Inhalt der iframes scrollen möchte?
Hoffe auf Hilfe,
Bohne47
2 Antworten
Bei einem iframe kann man auch die Funktion scrollTo() benutzen, um die Scrollposition zu ändern. Allerdings ist darf scrollTo() erst nach dem Laden des iframe-Elements ausgeführt werden. Dazu verwendet man onload:
<iframe src="https://beispiel.de/" id="iframe">
</iframe>
<script>
var iframe = document.getElementById("iframe");
iframe.onload = function() {
// scrolle zu X = 0 und Y = 500
iframe.contentWindow.scrollTo(0, 500);
};
</script>
Man kann auch das Attribut scrollTop auf den gewünschten Wert setzen:
var iframe = document.getElementById("iframe");
iframe.onload = function() {
// scrolle zu Y = 1000
iframe.contentWindow.document.documentElement.scrollTop = 1000;
};
Dies funktioniert allerdings nicht bei allen eingebundenen Webseiten, da man aus Sicherheitsgründen nicht auf ein iframe mit einer anderen Webseite zugreifen kann (siehe Same-Origin Policy).
Siehe dazu: https://stackoverflow.com/questions/1192228/scrolling-an-iframe-with-javascript
Innerhalb des iframes kannst du genauso scrollen, als wenn die Seite nicht eingebettet ist.
Vom Elter (parent) Dokument kannst du die iframe Seite beim Laden mit dem Parameter #kapitel3 auf eine Position id=kapitel3 setzen.
Was genau ist dein Begehr?
~~~~~~~~~~
Lese gerade, dass automatisch (selbst tun) gescrollt werden soll. Das geht durch Javascript zu einer beliebigen Uhrzeit. Oder x Sekunden nach dem Laden.
Das iframe ist ein HTML-Element und die Elter (parent) kann die Höhe setzen, auch noch nachträglich, wenn die Webseite im iframe geladen ist.
Die Webseite im iframe kann per ajax ihre Höhe an ihren eigenen Server melden. Der erzeugt daraus ein image mit dieser Höhe, das dann - über Domaingrenzen hinweg - vom Elter gelesen und ausgewertet wird. Elter korrigiert die Höhe des iframes und das eingebettete Dokument ist vollständig sichtbar.
Mir ist nicht bekannt, dass man ein iframe anweisen kann, das enthaltene Dokument gegen Scrollen zu sperren. Elter hat kein Recht, in das Kind Element einzugreifen.
Die eingebetttete Seite ist halt sehr hoch und das iframe ist nicht so hoch. Ich wollte dann mit setInterval eine Animation machen, die das iframe alle x millisekunden y pixel weiter scrollt. Ach übrigends: ist es möglich dass man das iframe nur durch Javascript scrollen kann, und durch nichts anderes? Mfg,
Bohne47