Autor |
Nachricht |
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mi 29.06.2005 09:56
Titel [JavaScript] Scrolleisten-Position bestimmen/ändern |
|
|
Mahlzeit!
Hab zur zeit ine "kleines" Problem, und möchte gerne um Eure Hilfe bitten.
Folgendes:
Ich habe ein Hauptdokument (scroll.htm) in dem ein iFrame platziert ist (rutscher.htm).
Nun möchte ich gerne die Scrollleisten-Position ermitteln, und nach dem refresh der
iFrame-Datei die Position wieder herstellen.
Mittels pageXOffset, pageYOffset (bei IE sind es: scrollLeft und scrollTop) kann ich ja angeblich
die Position ermitteln, wie weit die Seite gescrollt wurde. Und mittels scrollTo(x, y) könnte ich
dann ja das Dokument entsprechend zu der Position scrollen lassen. Das problem
ist halt nur, das immer für X und Y 0 Pixel ermittelt werden, obwohl ich im iFrame-Dokument
gescrollt habe????
Warum??? Kann mir vielleicht jemand helfen??? Hier mal die Scripte
scroll.htm:
Code: | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
<script language="JavaScript" type="text/javascript">
<!--
var iFrame_URI = "rutscher.htm";
var IE= ((document.all)&&(!document.layers)) ? true : false;
function VorschauRefresh()
{
if(IE == true)
{
var vXPosition = document.getElementById('VorschauFrame').scrollLeft;
var vYPosition = document.getElementById('VorschauFrame').scrollTop;
}
else
{
var vXPosition = document.getElementById('VorschauFrame').pageXOffset;
var vYPosition = document.getElementById('VorschauFrame').pageYOffset;
}
document.getElementById('VorschauFrame').src= iFrame_URI;
parent.VorschauFrame.RutschMa(parseInt(vXPosition), parseInt(vYPosition));
}
//-->
</script>
</head>
<body>
<iframe name="VorschauFrame" id="VorschauFrame" src="rutscher.htm" style="border:0px; height: 250px; width:100%" scrolling="auto"></iframe><br />
<a href="#" onClick="VorschauRefresh()">Jetzt zeig mal was</a>
</body>
</html>
|
rutscher.htm:
Code: | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
<script type="text/javascript" language="javascript">
<!--
function RutschMa(vXPosition, vYPosition)
{
window.scrollTo(vXPosition, vYPosition);
alert("X: "+vXPosition+" Y:"+ vYPosition);
}
//-->
</script>
</head>
<body>
<p>Hier </p>
<p> </p>
<p> </p>
<p> </p>
<p>steht </p>
<p> </p>
<p> </p>
<p> </p>
<p>dann</p>
<p> </p>
<p> </p>
<p>viel </p>
<p> </p>
<p> </p>
<p> </p>
<p>Text</p>
</body>
</html>
|
Gruß
Chris
Zuletzt bearbeitet von chrikle am Mi 29.06.2005 09:57, insgesamt 1-mal bearbeitet
|
|
|
|
|
caZpa
Account gelöscht
Ort: -
|
Verfasst Mi 29.06.2005 10:30
Titel
|
|
|
die funktion RutschMa steht in rutscher.htm
wird aber in scroll.htm aufgerufen...
ich denke mit parent.VorschauFrame.RutschMa(parseInt(vXPosition), parseInt(vYPosition)); funktioniert das nicht
vielleicht die funktion RutschMa[i] in die scroll.htm
und statt [i]window.scrollTo(vXPosition, vYPosition);
VorschauFrame.window.scrollTo(vXPosition, vYPosition);
vielleicht geht das ja
|
|
|
|
|
Anzeige
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mi 29.06.2005 10:35
Titel
|
|
|
Leider nicht.
Drum habe ich ja in der Funktion RutschMa ein Alert. Der wird auf jeden Fall ausgeführt.
Wenn ich zum Beispiel in der scroll.htm direkt folgendes eingebe:
Code: |
parent.VorschauFrame.scrollTo(50, 50); |
Funktioniert das einwandfrei. Die iFrame-Datei verändert die Position.
Nur wenn ich die ermittelten Werte, sprich die Variabeln vXPosition, vYPosition einsetze,
haben diese immer 0. Daher meine Annahme, das bei der Positions-Ermittlung schon was
nicht richtig laufen kann?? Aber was?
Gruß
Chris
|
|
|
|
|
caZpa
Account gelöscht
Ort: -
|
Verfasst Mi 29.06.2005 10:39
Titel
|
|
|
werden die überhaupt in der VorschauRefresh() richtig ermittelt?
pack mal das alert da rein
|
|
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mi 29.06.2005 10:45
Titel
|
|
|
Jo, hab ich ja auch schon getestet.
Es wird immer nur eine 0 (NULL) ausgegeben.
Wobei ja auch 0 gleich false bedeuten kann?
Also vermute ich, das die Abfrage nach der Position
der Scrolleisten nicht passt/oder funktioniert?
Code: | function VorschauRefresh()
{
if(IE == true)
{
var vXPosition = document.getElementById('VorschauFrame').scrollLeft; //hier passt was nicht???
var vYPosition = document.getElementById('VorschauFrame').scrollTop; //dito
}
else
{
var vXPosition = document.getElementById('VorschauFrame').pageXOffset;
var vYPosition = document.getElementById('VorschauFrame').pageYOffset;
}
document.getElementById('VorschauFrame').src= iFrame_URI;
alert("X: "+vXPosition+" Y:"+ vYPosition); // es kommt immer 0 raus, auch wenn ich im iFrame gescrollt habe
parent.VorschauFrame.scrollTo(vXPosition, 50); //50 Pixel nach unten klappt wunderbar
} |
Gruß
Chris
Zuletzt bearbeitet von chrikle am Mi 29.06.2005 10:50, insgesamt 1-mal bearbeitet
|
|
|
|
|
caZpa
Account gelöscht
Ort: -
|
Verfasst Mi 29.06.2005 10:53
Titel
|
|
|
hmmm...
versuch mal
var vXPosition = document.VorschauFrame.scrollLeft;
//edit
oder gleich
var vXPosition = parseInt(document.VorschauFrame.scrollLeft);
Zuletzt bearbeitet von am Mi 29.06.2005 10:55, insgesamt 1-mal bearbeitet
|
|
|
|
|
chrikle
Threadersteller
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Mi 29.06.2005 10:59
Titel
|
|
|
caZpa hat geschrieben: | hmmm...
versuch mal
var vXPosition = document.VorschauFrame.scrollLeft;
|
es kommt undefined raus
caZpa hat geschrieben: | //edit
oder gleich
var vXPosition = parseInt(document.VorschauFrame.scrollLeft); |
[/quote]
das wandelt den string (undefined) ja nur in 0 um.
Bei anderen Browser (browserweiche) ist übrigens das gleiche (undefined)
ich komm einfach nicht dahinter. wie ich die Eigenschaften des iframes korrekt auslesen kann.
Da muß doch irgendwas mit der Syntax nicht passen?
ich habs auch schonmal mit parent probiert - mit dem gleichen Ergebnis
Gruß
Chris
|
|
|
|
|
caZpa
Account gelöscht
Ort: -
|
Verfasst Mi 29.06.2005 11:03
Titel
|
|
|
aaaah!
var vXPosition = parseInt(document.VorschauFrame.body.scrollLeft);
nich heulen... versuchen! los!
|
|
|
|
|
|
|
|
Ähnliche Themen |
Höhe eines divs mit javascript bestimmen.
JavaScript: Position von BackgroundImages anpassen
[js] session mit javascript ändern
JavaScript - CSS - Klasse ändern
javascript: gestaltung der buttons ändern
[javascript] div inhalt ändern - auf die andere art
|
|