Scripty: falsche Werte von OffsetTop. Image stört scrollTo !?

hallo leute,

da ich aus bestimmten Gründen keine normalen Anker benutzen kann, muss ich dies mit einem scrollTo lösen. Dabei nehme ich mir die Werte für die Position der "a" Elemente durch ein offsetTop. Diesen Wert übergebe ich als variable dem scrollTo.

Funktioniert auch wunderbar. Aber halt nur im IE. Den Mozilla stören irgendwie die beiden Images. er bleibt quasi daran hengen.

hoffe ich habe mich einigermaßen verständlich ausgedrückt.
habe mir die finger wund gegoogelt aber keine Lösung dazu gefunden.

kann mir da wer helfen? warum wirft er falsche Werte aus wenn ein Bild im Code steht? Wenn ich die Bilder aus dem Code nehme funzt es auch im Mozi.

  
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">  
  
<br>  
<table border="0" cellspacing="0" cellpadding="0" vspace="0" hspace="0" width="100%" style="padding-left:4px;">  
  <tr>  
    <td width="2" align="left" valign="top"><img src="../../images/spacer.gif" width="2" height="16" vspace="0" hspace="0" border="0"></td>  
    <td>  
<b><font color="#FF0000">Use of the Site</font></b><br><br>  
    <a name="top"></a><br>  
    <a href="#" onmousedown="scrollTo(0, a[1]);"><u>zum 1. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[2]);"><u>zum 2. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[3]);"><u>zum 3. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[4]);"><u>zum 4. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[5]);"><u>zum 5. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[6]);"><u>zum 6. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[7]);"><u>zum 7. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[8]);"><u>zum 8. Anker</u></a><br>  
		<a href="#" onmousedown="scrollTo(0, a[9]);"><u>zum 9. Anker</u></a><br><br><br><br>  
		  
		<a name="1"><u>bla bla bla bla bla bla  
		<a name="2"><u>bla bla bla bla bla bla  
		<a name="3"><u>bla bla bla bla bla bla  
		<a name="4"><u>bla bla bla bla bla bla <br /> <img src="test.jpg"> <br><br><br> bla bal bla bla <img src="test2.jpg">  
		<a name="5"><u>bla bla bla bla bla bla  
		<a name="6"><u>bla bla bla bla bla bla  
		<a name="7"><u>bla bla bla bla bla bla  
		<a name="8"><u>bla bla bla bla bla bla  
    <a name="9"><u>bla bla bla bla bla bla  
    <a href="#" onmousedown="scrollTo(a[top], a[top]);"><font color="#0000FF"><u>To the Top</u></font></a><br><br>  
</td>  
  </tr>  
</table>  
  
<br><br>  
[code lang=javascript]  
<script type="text/javascript">  
	var count = document.getElementsByTagName('a').length;  
	var found = count;  
	var top = document.getElementsByName('top')[0].offsetTop;  
	var a = new Array(found);  
	for(i=1; i < found ; i = i+1){  
		var n =  i;	  
	  var n = document.getElementsByName(i)[0].offsetTop;  
    a[i] = n;  
  
	}  
  
	</script>

</body>

[/code]

  1. kann mir da wer helfen? warum wirft er falsche Werte aus wenn ein Bild im Code steht? Wenn ich die Bilder aus dem Code nehme funzt es auch im Mozi.

    Bist du sicher? Hast du mal einen Blick in die Fehlerkonsole geworfen?

    Der Browser "Mozi" ist mir nicht bekannt, meinst du Firefox?

    Struppi.

  2. Hi,

    da ich aus bestimmten Gründen keine normalen Anker benutzen kann, muss ich dies mit einem scrollTo lösen.

    Musst du ...?
    http://de.selfhtml.org/javascript/objekte/all.htm#scroll_into_view

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi ChrisB,

      Musst du ...?

      ja muss ich. Dein Vorschlag funktioniert leider auch nicht.

      Es ist so das ich in einem Layer ein iframe habe. Der layer mit dem iframe
      wird aufgerufen und in einem Frame angezeigt der ebenfalls scrollbar ist.

      wenn ich nun im iframe einen link anklicke und er zu einem Anker springt, dann tut es das nicht nur im iframe sondern im aktuellen frame in dem ich den layer aufgerufen habe auch. dies darf auf keinen fall geschehen.

      mit meiner kleinen funktion funktioniert dies auch, halt nur nicht wenn ein image im code steht...

      Danke für eure hilfe

      Scripty

      1. mit meiner kleinen funktion funktioniert dies auch, halt nur nicht wenn ein image im code steht...

        Danke für eure hilfe

        und für deine. Was steht in der Fehlerkonsole?

        Struppi.

        1. hi Struppi,

          und für deine. Was steht in der Fehlerkonsole?

          das ist es ja, er wirft ja nicht wirklich einen fehler. firebug sagt nischt..

          ie funzt und wirft auch keinen fehler..

          1. » und für deine. Was steht in der Fehlerkonsole?

            das ist es ja, er wirft ja nicht wirklich einen fehler. firebug sagt nischt..

            Fehlerkonsole, nicht Firebug1

            Dein Code wirft bei mir Fehler, also entweder schaust du nicht richtig oder du hast uns nicht alles gezeigt.

            Struppi.

            1. Fehlerkonsole, nicht Firebug1
              damit meine ich die fehlerkonsole von firebug.
              Dein Code wirft bei mir Fehler, also entweder schaust du nicht richtig oder

              du hast uns nicht alles gezeigt.

              was für einen fehler wirft er denn bei dir? bei mir wirft er keinen fehler im original Code. Den beispiel-code den ich gepostet habe, habe ich gar nicht getestet..der sollte nur einen überblick bieten.

              1. Den beispiel-code den ich gepostet habe, habe ich gar nicht getestet..der sollte nur einen überblick bieten.

                Erkennst du langsam, warum wir hier nicht weiterkommen?

                Mathias

                1. Erkennst du langsam, warum wir hier nicht weiterkommen?

                  okey habe den code mal überarbeitet. wenn man auf die ersten links klickt springt es wunderbar zum zugehörigen anker.

                  wenn das bild geladen ist und man z. B. den 7 link klickt springt er nicht zum Ankerpunkt sondern bleibt am image hengen!

                  warum?

                  1. »» Erkennst du langsam, warum wir hier nicht weiterkommen?

                    okey habe den code mal überarbeitet. wenn man auf die ersten links klickt springt es wunderbar zum zugehörigen anker.

                    wenn das bild geladen ist und man z. B. den 7 link klickt springt er nicht zum Ankerpunkt sondern bleibt am image hengen!

                    warum?

                    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

                    <a name="top"></a><br>
                        <a href="#" onmousedown="scrollTo(0, a[1]);"><u>zum 1. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[2]);"><u>zum 2. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[3]);"><u>zum 3. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[4]);"><u>zum 4. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[5]);"><u>zum 5. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[6]);"><u>zum 6. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[7]);"><u>zum 7. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[8]);"><u>zum 8. Anker</u></a><br>
                                    <a href="#" onmousedown="scrollTo(0, a[9]);"><u>zum 9. Anker</u></a><br><br><br><br>

                    <a name="1"><u>ANKER 1 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="2"><u>ANKER 2 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="3"><u>ANKER 3 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="4"><u>ANKER 4 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="5"><u>ANKER 5 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br><image src="http://www.prepolino.ch/sprache/trennen/bilder/test.gif"><br><br><br>
                                    <a name="6"><u>ANKER 6 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="7"><u>ANKER 7 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="8"><u>ANKER 8 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a name="9"><u>ANKER 9 bla bla bla bla bla bla <br><br><br><br><br><br><br><br><br><br><br><br><br>
                                    <a href="#" onmousedown="scrollTo(a[top], a[top]);"><font color="#0000FF"><u>To the Top</u></font></a><br><br>

                    <br><br>

                    <script type="text/javascript">

                    var top = document.getElementsByName('top')[0].offsetTop;
                            var a = new Array(10);
                            for(i=1; i < 10 ; i = i+1){
                                    var n =  i;
                              var n = document.getElementsByName(i)[0].offsetTop;
                        a[i] = n;

                    }

                    </script>
                    </body>

                    1. hat sich erledigt. habe dem image einfach eine höhe gegeben. im nachhinein klingt es logisch.

                      danke für eure mühen. ich versuche mich demnächst verständlicher auszudrücken und die beispiel codes auch funktionierend zu posten.

                      gruß

                      scripty

              2. was für einen fehler wirft er denn bei dir? bei mir wirft er keinen fehler im original Code. Den beispiel-code den ich gepostet habe, habe ich gar nicht getestet..der sollte nur einen überblick bieten.

                Fehler: document.getElementsByName(i)[0] is undefined
                Quelldatei: file:.../javascript/tmp.html
                Zeile: 44

                Struppi.

      2. Hi,

        Musst du ...?

        ja muss ich.

        Deine Beschreibung ist mir viel zu konfus, zumal sie nicht existente Dinge wie "Layer" benutzt beim Versuch, etwas zu erklären.

        Dein Vorschlag funktioniert leider auch nicht.

        Wenn du mal wirklich *verständlich* beschreiben würdest, wie der Aufbau aussieht, und warum du da nicht mit normalen Ankern arbeiten kannst und warum scrollIntoView auch nicht gehen soll - dann könnte man vielleicht über Alternativen diskutieren.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hi,

          Deine Beschreibung ist mir viel zu konfus, zumal sie nicht existente Dinge wie "Layer" benutzt beim Versuch, etwas zu erklären.

          liegt an meiner person...

          Wenn du mal wirklich *verständlich* beschreiben würdest, wie der Aufbau aussieht, und warum du da nicht mit normalen Ankern arbeiten kannst und warum scrollIntoView auch nicht gehen soll - dann könnte man vielleicht über Alternativen diskutieren.

          hab versucht es einigermaßen verständlich auszudrücken.
          kann es ja noch mal versuchen. Wenn es weiterhin unverständlich ist, tut es mir leid für deine vergeudete zeit. Aber danke für deine Hilfe.

          Die Seite mit der ich arbeite hat drei Frames.
          Startseiten_Frame A
          Startseiten_Frame B (scrollbar)
          Startseiten_Frame C
          in Frame A öffnet man mit einem link in Frame B einen div-Layer in dem sich ein iframe befindet.

          Das iframe hat auch drei frames:
          frame A
          frame B
          frame C
          in frame A befinden sich links die im selbigen frame auf die Anker verweisen.

          klickt man jedoch auf einen der Links springt man nicht nur im frame A zum Anker sondern auch im Startseiten_Frame B springt man sonstwohin!

          Dies habe ich versucht mit scrollTo zu lösen. Mann springt jetzt nur noch im iframe zum Anker!! nur leider funzt es nur im ie. beim firefox bleibt er am   image hengen. dafür suche ich eigentlich die erklärung. oder natürlich eine andere evtl unkompliziertere lösung.

      3. Es ist so das ich in einem Layer ein iframe habe

        Was ist ein Layer?

        Der layer mit dem iframe wird aufgerufen

        Was heißt »Layer aufrufen«?

        und in einem Frame angezeigt der ebenfalls scrollbar ist.

        Okay...

        wenn ich nun im iframe einen link anklicke und er zu einem Anker springt, dann tut es das nicht nur im iframe sondern im aktuellen frame in dem ich den layer aufgerufen habe auch. dies darf auf keinen fall geschehen.

        Sorry, das rallt keiner alleine durch diese Beschreibung.

        Am besten stellst du mal ein reduziertes Beispiel online, was den Grundaufbau ersichtlich macht und nichts anderes als dein Problem demonstriert.

        Mathias

        1. Was ist ein Layer?

          <div id="layer" style="width:500px;height:500px;position:absolute;top:10px;left:10px;display:none;"><iframe></iframe></div>

          Was heißt »Layer aufrufen«?

          beim klicken auf einen link <div id="layer"> auf display:block setzen!

          Sorry, das rallt keiner alleine durch diese Beschreibung.

          jap, das ist eins meiner großen probleme. drücke mich stets unverständlich aus.

          Am besten stellst du mal ein reduziertes Beispiel online, was den Grundaufbau ersichtlich macht und nichts anderes als dein Problem demonstriert.

          kann ich machen aber gerade jetzt habe ich keine zeit dafür. Dachte jemand hätte nur ne idee warum das mit dem offsetTop net richtig funzt.

          Danke

          1. kann ich machen aber gerade jetzt habe ich keine zeit dafür. Dachte jemand hätte nur ne idee warum das mit dem offsetTop net richtig funzt.

            Vermutlich wegen dem Fehler.

            Struppi.