Probleme beim ScrollTo-Befehl
Jörn
- javascript
Hallo!
Ich bins mal wieder und hoffe euch nicht zur Last zu fallen, aber mein Javaunterricht ist mittlerweile 3 Jahre her und meine lezte HP hab ich vor etwas über 4 Jahren programmiert.
Also:
Ich habe folgenden Script-Code im Header:
function Aktualisieren() {
var horiz = document.body.scrollLeft;
var vert = document.body.scrollTop;
document.all.Begriffe.object.DataURL = document.all.Begriffe.object.DataUrl;
document.all.Begriffe.Reset();
window.scrollTo(horiz , vert) ;
}
Das auslesen der horizontalen und vertikalen Werte klappt problemlos. Allerdings funktioniert der Befehl window.scrollTo sehr eigenartig. Zur Ergänzung noch: meine HP besteht aus 3 Frames (Navigation, Banner, Hauptfenster) dieses Script läuft im Hauptfenster ab und soll auch dort zu der Position scrollen, die vor dem Aktualisieren im Frame zu sehen war. Wenn ich den Befehl wie oben laufen lasse, passiert gar nichts. Das Frame bleibt in der Position 0,0 auch wenn unter vert der Wert 275 abgelegt ist. Gebe ich aber direkt vor der window.scrollTo Zeile den Befehl:
alert (horiz + " " + vert);
ein um mir die Variablenwerte anzeigen zu lassen, öffnet sich zuerst das Alertfenster und wenn ich das dann über OK schließe wird der window.scrollTo-Befehl auf einmal korrekt abgearbeitet und das Frame springt zu den in den Variablen horiz und vert gespeicherten Werten. Woran liegt das, bzw. wie kann ich das beheben?
Mit freundlichen Grüßen,
Jörn
hi,
window.scrollTo(horiz , vert) ;
Zur Ergänzung noch: meine HP besteht aus 3 Frames (Navigation, Banner, Hauptfenster) dieses Script läuft im Hauptfenster ab und soll auch dort zu der Position scrollen, die vor dem Aktualisieren im Frame zu sehen war.
wenn du frames hast, gibt es im top-fenster doch vermutlich gar nichts zu scrollen?
Wenn ich den Befehl wie oben laufen lasse, passiert gar nichts. Das Frame bleibt in der Position 0,0 auch wenn unter vert der Wert 275 abgelegt ist.
du willst also eine seite scrollen, die in einem der frames geladen ist?
dann greife auch auf diesen frame zu - derzeit sprichst du über window nur das frameset selber an.
gruss,
wahsaga
Hallo wahsaga!
Ich hab das jetzt mal per parent.Hauptfenster.scrollTo(horiz, vert); und top.Hauptfenster.scrollTo(horiz, vert); versucht, aber mit dem gleichen Ergebnis, dass es nicht funktioniert. Das lustige ist ja, das der window-Befehl funktioniert, wenn ich vorher einen alert Befehl aufrufe.
MfG
Jörn
Hallo, bins nochmal!
Hab jetzt mal etwas rumprobiert und mal folgende Zeile eingefügt:
window.setTimeout("top.Hauptfenster.scrollTo(0 , 275)",1000);
und damit funktioniert es. Binde ich den ScrollTo befehl mit festen Koordinaten wie vorher ein funktioniert es wieder nicht. Anscheinend wird der Befehl so schnell abgearbeitet, das per TBC die Tabelle in der gescrollt werde soll nicht schnell genug aufgebaut werden kann.
Wieder was dazugelernt. Das einzige, was ich jetzt noch hinbekommen muß, ist ihm die Variablen zu übergeben, denn wenn ich es folgendermaßen mache:
function Aktualisieren() {
var horiz = document.body.scrollLeft;
var vert = document.body.scrollTop;
document.all.Begriffe.object.DataURL = document.all.Begriffe.object.DataUrl;
document.all.Begriffe.Reset();
window.setTimeout("top.Hauptfenster.scrollTo(horiz , vert)",1000);
}
Bekomme ich die Fehlermeldung, dass die Variable horiz nicht definiert sei.
MfG
Jörn