• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Externe Datei laden und nach 4 Sekunden runterscrollen

nooneatall

Neues Mitglied
Zu meinem Vorhaben. Es geht um die Anzeige eines Vertretungsplans in unserer Schule.
Das Vertretungsplan-Programm erstellt eine html-Seite, die bei vielen zu vertretenden Unterrichtsstunden entsprechend viele Zeilen erstellt, die nicht ohne runterzuscrollen angezeigt werden können. Nun möchte ich, dass wenn die der Inhalt der Vertretungsplandatei größer ist als die verfügbare Displaygröße der Inhalt nach 4 Sekunden Wartezeit automatisch nach unten scrollt. Dort angekommen soll kurz geartet werden und dann quasi als Endlosschleife oben wieder gestartet werden.
So wie im letzten Beispiel unten dargestellt habe ich es mal hinbekommen. Das war aber noch ein anderes Programm, in dem das script in jede Vertretungsplan-Datei hinterlegt werden konnte. Das geht nun nicht mehr, weshalb ich versuche, die Vertretungsplan-Datei, die immer gleich heißt, in einem Frame (iframe) zu laden. Der Inhalt dieses Frames soll dann bei Bedarf wie oben beschrieben scrollen.

Ich habe zwei unterschiedliche Varianten:
diese hier scrollt nicht:
HTML:
<html>
<head>
<title>Vertretungsplan heute</title>
<script type="text/javascript">
var sprungweite=1 //normales Scrollen=1 Umblaettern: Je nach Monitorgroesse, z.B. 700
var verzoegerung=25 //Scrollgeschwindigkeit, z.B. 50, hoeher=langsamer
var verzoegerung_am_anfang=4000 //Verzoegerung am Anfang
var verzoegerung_am_ende=4000 //Verzoegerung nach dem Anzeigen der letzten Zeile
var neuladen_nach=30 //nach wie vielen Durchgaengen wird die Datei neu geladen
var currentpos=0, alt=1, curpos1=0, curpos2=-1, i=1 //nicht aendern
function wait_on_top() {
if (currentpos == 0) window.setTimeout("scrollwindow()", verzoegerung_am_anfang)
}

function scrollwindow(){
if (document.all)
temp=document.body.scrollTop
else
temp=window.pageYOffset
if (alt==0)
alt=1
else
alt=0
if (alt==0)
curpos1=temp
else
curpos2=temp
if (curpos1!=curpos2){
if (document.all)
currentpos=document.body.scrollTop+sprungweite
else
currentpos=window.pageYOffset+sprungweite
window.scroll(0,currentpos)
window.setTimeout("scrollwindow()", verzoegerung)
}
else window.setTimeout("jump_top()", verzoegerung_am_ende)
}
function jump_top() {
currentpos=0
if (i == neuladen_nach) {
i=1
self.location.reload()
}
else {
i++
window.scroll(0,currentpos)
wait_on_top()
}
}
function startit() {
window.scroll(0,0)  //fuer Firefox nach relaod
wait_on_top()
}
</script>
</head>
<body onload="startit()">
<center><center><font size=6><b>Vertretungsplan heute</b></font><br>
<iframe src="LZ_heute.htm" width="100%" height="95%" frameborder="0" name="frame" id="frame"></iframe>
</center>
</body>
</html>

Diese hier scrollt einfach los. Finde keine Möglichkeit, irgendwelche Warteparameter zum Funktionieren zu bringen (auf Mac scrollt sie nicht). Mein Ziel ist nach wie vor, den zu landenden Fensterhinhalt am Anfang 4 Sekunden anzuzeigen und erst dann zu scrollen (wenn der Inhalt größer ist, als das zur Verfügung stehende Fenster). Und wenn sie runter gescrollt hat, soll sie 3 Sekunden warten, nach oben springen, 3 Sekunden warten, wieder nach untern scrollen...
HTML:
<html>
<head>
<title>Vertretungsplan heute</title>
<script language="JavaScript">
var timer_id;
function scroll_iframe(frm,inc,dir) {
if (timer_id)
clearTimeout(timer_id);
if (window.frames[frm]) {
if (dir == "v")
window.frames[frm].scrollBy(0, inc);
else
window.frames[frm].scrollBy(inc, 0)
timer_id = setTimeout("scroll_iframe('" + frm + "'," + inc + ",'" + dir + "')", 20);
}
}
</script>
</head><body onLoad="scroll_iframe('frame', 1, 'v'); return true">
<center><center><font size=6><b>Vertretungsplan heute</b></font><br>
<iframe src="LZ_heute.htm" width="100%" height="95%" frameborder="0" name="frame" id="frame"></iframe>
</center>
</body>
</html>

so wie diese hier:
(das habe sich seinerzeit mal hinbekommen, konnte es bislang leider nicht auf den iframe-Inhalt übertragen...)
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="cache-control"content="no-cache" />
<meta http-equiv="content-language" content="de" />
<meta http-equiv="expires" content="0" />
<meta name="description" content="Vertretungsplan" />
<link href="svplan11.css" type="text/css" rel="stylesheet"/>
<title>Vertretungsplan für  Dienstag, den  20.12.2016</title>
       <script type="text/javascript">
var sprungweite=1 //normales Scrollen=1 Umblaettern: Je nach Monitorgroesse, z.B. 700
var verzoegerung=25 //Scrollgeschwindigkeit, z.B. 50, hoeher=langsamer
var verzoegerung_am_anfang=3000 //Verzoegerung am Anfang
var verzoegerung_am_ende=3000 //Verzoegerung nach dem Anzeigen der letzten Zeile
var neuladen_nach=30 //nach wie vielen Durchgaengen wird die Datei neu geladen
var currentpos=0, alt=1, curpos1=0, curpos2=-1, i=1 //nicht aendern
function wait_on_top() {
if (currentpos == 0) window.setTimeout("scrollwindow()", verzoegerung_am_anfang)
}

function scrollwindow(){
if (document.all)
temp=document.body.scrollTop
else
temp=window.pageYOffset
if (alt==0)
alt=1
else
alt=0
if (alt==0)
curpos1=temp
else
curpos2=temp
if (curpos1!=curpos2){
if (document.all)
currentpos=document.body.scrollTop+sprungweite
else
currentpos=window.pageYOffset+sprungweite
window.scroll(0,currentpos)
window.setTimeout("scrollwindow()", verzoegerung)
}
else window.setTimeout("jump_top()", verzoegerung_am_ende)
}
function jump_top() {
currentpos=0
if (i == neuladen_nach) {
i=1
self.location.reload()
}
else {
i++
window.scroll(0,currentpos)
wait_on_top()
}
}
function startit() {
window.scroll(0,0)  //fuer Firefox nach relaod
wait_on_top()
}
</script>
</head>
<body onload="startit()">

Ich hoffe, ich habe alles verständlich angegeben. Ich freue mich über Rückmeldungen! Schon jetzt vielen Dank vorab!
nooneatall
 
Werbung:
Ich habe mir jetzt den Link - und die Unterverknüpfungen- angesehen.

Ich glaube, verstanden zu haben, dass es grundsätzlich möglich ist, meinen Wunsch zu programmierien, sofern beide Dateien (die Datei mit dem Scroll-Befehl und die mit dem Stundenplan in einem Verzeichnis) liegen.
Wie der Code in meinem konkreten Fall aussehen würde, erschließt sich mir aber leider noch nicht, da immer nur Ausschnitte der Funktionen und nie eine ganze HTML Datei abgebildet werden. So weit reichen meine Kenntnisse nicht.
Ehrlich gesagt habe ich nichts selbst programmiert, sondern nur viel (in Foren) gelesen, probiert und kopiert. Irgendwann ging es dann. Jetzt komme ich aber echt nicht weiter!
 
Werbung:
Zurück
Oben