Scroll Position im IE7 herausfinden

XtremeCJ

Erfahrenes Mitglied
Wie kann man im IE7 die Scroll Position auslesen? Ich habe eine WebPage mit ein paar Buttons, alle mit dem selben Click-Event. Das Click-Event habe ich mit ASP.NET geschrieben und sieht so aus:
Code:
            StringBuilder st = new StringBuilder();
            st.Append("<script language=\"javascript\">");
            st.Append("var Text1=document.getElementById(\"Text1\");");
            st.Append("alert(window.pageYOffset);");
            st.Append("alert(window.pageXOffset);");
            st.Append("alert(document.documentElement.scrollTop);");
            st.Append("alert(document.documentElement.scrollLeft);");
            st.Append("alert(document.body.scrollTop);");
            st.Append("alert(document.body.scrollLeft);");
            st.Append("</script>");
            ClientScript.RegisterStartupScript(GetType(), "123", st.ToString());
Die Page ist recht groß, damit man scrollen und die Funktion probieren kann. Wenn man dann aber einen der Buttons anklickt, kommt in den ersten zwei alerts "Undefined" und die anderen sagen alle 0. Warum funktioniert das nicht?

Gibt es noch andere möglichkeiten, die Scroll Position auszulesen?

Ich verwende wie gesagt InternetExplorer 7 und Vista, entwickelt wird mit VS 2005.
 
Hallo,

das wird mit Java aber nicht funkionieren. Ich bin mir nicht sicher, aber das müsste eigentlich mit Java-Script funktionieren.

Wenn du willst, kann ich das Thema dahin verschieben.

MFG

Sascha
 
Moin!
Das ist mehr ne Javascript Frage. Die Positionen müsste man meines Wissens mit
Code:
document.documentElement.scrollLeft
document.documentElement.scrollTop
ermitteln können(beim IE) ..

*grüssle*
MeinerEiner
 
Tut mir Leid, hab in meiner Rage das falsche Forum erwischt.
@MeinerEiner_80: damit geht es net, wie schon geschrieben. Das alert gibt nichts zurück. Vielleicht liegt's am IE7.
 
Sorry, das hab ich überlesen.
Allerdings, das hier:
Code:
<html>
<script type="text/javascript">
function doit(){
    alert(document.body.scrollTop);
}
</script>
<body>
<h1>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
<div onclick="doit()" style ="height:500px">
click me
</div>
</body>

</html>

funktioniert bei mir unter IE7 (Windows XP)ohne Probleme.

*grüssle*
MeinerEiner
 
Habe es selbst gelöst. Ich habe die Funktion ja in ASP.NET geschrieben und sie dann als Page.RegisterStartupScript übergeben. War natürlich klar, dass es mir da 0 zurückgibt. Wenn ich es als Page.RegisterStartupScript übergebe, wird es ja nach dem LadenPage.RegisterOnSubmitStatement übergebe, wird es beim Postback ausgeführt, und net erst, wenn die Seite neu geladen wurde.
Der funktionierende Befehl war übrigens document.documentElement.scrollTop.
Achja: das RegisterOnSubmitStatement funktioniert erst beim 2. Mal! Man muss davor noch einmal ein Script als RegisterOnSubmitStatement übergeben! Und es muss etwas beinhalten. Es darf weder NULL noch empty.string noch ein Kommentar sein. Es muss ein Befehl sein! Ob es der selbe sein muss, den man danach ausführen will, weiß ich nicht.

Damit is der Fall nach knapp einem halben Tag erledigt :)
 

Neue Beiträge

Zurück