matthias finke: Ankersprung innerhalb einer Seite

Hallo,

habe hier ein kleines Problem. Ich habe dynamisch eine
HTML Seite mit Javascript Inhalten erstellt. In der Seite
sind mehere Anker definiert. Das erste was das Javascript
machen soll ist direkt zu einem bestimmten Anker im Dokument
zu springen. Mit IE geht das prima aber mit Netscape leider nicht:(

Das Script sieht ungefähr so aus:

<html>
<body bgcolor="#F2F1DF">
<head>
<title>Visualization Hyper Structure</title>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript">
<!--

window.location.href="#test";

//-->
</script>

die Ankerdefinition sieht so aus:

<a HREF="http://www.aldi.de" NAME="test" ID="test"> Test  </a>

Bin mir sicher das da irgendetwas falsch ist, die Frag ist
nur was und wie ich das ändern kann.

bis danne

Matthias

  1. wenn du den script-aufruf in den onload-handler verlegst? dann wird die seite erst gescrollt/gesprungen, wenn die seite auch wirklich fertig geladen ist, was bei deiner variante im moment nicht sicher ist. vielleicht zickt der mozilla/netscape deshalb (zu recht?) rum.

    gruß hein

  2. Hi,

    Ändere dein JS, mach eine Funktion draus und versuche doch einfach mal, das Ganze ans Ende der html-Datei zu setzen und rufe sie mit dem onLoad-Befehl im Body-Tag auf. (muss es nicht auch window.document.location.href heißen *dummfrag*)

    MfG
    Dark Sider

  3. Hallo,habe hier ein kleines Problem. Ich habe dynamisch eine
    HTML Seite mit Javascript Inhalten erstellt. In der Seite
    sind mehere Anker definiert. Das erste was das Javascript
    machen soll ist direkt zu einem bestimmten Anker im Dokument
    zu springen. Mit IE geht das prima aber mit Netscape leider nicht
    Das Script sieht ungefähr so aus:
    <html>
    <body bgcolor="#F2F1DF">

    ??!!

    <head>
    <title>Visualization Hyper Structure</title>

    Hyper, indeed ! ;o)

    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">

    Hmmm !!

    <script type="text/javascript">
    window.location.href="#test";
    </script>
    die Ankerdefinition sieht so aus:
    <a HREF="http://www.aldi.de" NAME="test" ID="test"> Test  </a>

    Hier landest du bei Aldi !!

    Bin mir sicher das da irgendetwas falsch ist, die Frag ist
    nur was und wie ich das ändern kann.

    Normalerweise sieht ein lokaler( relativer ) Verweis so aus :
    <a href="#Ankereins">Ankereins</a>
    <a name="Ankereins">...</a>
    Bei absoluten Verweisen sollte sichergestellt sein, dass die Anker auch existieren !
    Bei Aldi gibt es keinen Anker mit Namen #test !
    Wenn du unbedingt JavaScript verwenden möchtest, mußt du eine Funktion aufrufen :
    <a href="javascript:anker()">anker</a>
    function anker()
    { window.location.href="#test";}
    <a name="Ankereins">...</a>
    :o))

    1. Hi,

      ich glaube, ihm geht es einfach darum einen Anker auf SEINER Seite zu setzen; eben auf den Link zu ALDI...

      MfG
      Dark Sider

      1. ich glaube, ihm geht es einfach darum einen Anker auf SEINER Seite zu setzen; eben auf den Link zu ALDI...

        Who knows, who cares !?
        Auf sowas reagier' i.d R. nur, wenn ich eine Flasche Roten intus hab' !
        Prost und gute Nacht !
        ;o)

  4. window.location.href="#test";

    mal abgesehen davon, das JS gar nicht weiß das der Anker existiert, da du damit warten musst bis die Seite fertig geladen ist, wie wär's die Eigenschaft zu nutzen die dafür vorgesehen ist?

    http://www.netzwelt.com/selfhtml/javascript/objekte/location.htm#hash

    Struppi.

    1. http://www.netzwelt.com/selfhtml/javascript/objekte/location.htm#hash
      Sorry, hatte ich wieder total vergessen !!
      <img src="http://home.t-online.de/home/VillaHammerschmidt/toon.gif" border="0" alt="">

  5. Habe gerade den Vorschlag mit der Funktion
    und onLoad ausprobiert und das haut sau gut
    hin. Nochmals vielen Dank für die sofortige
    Unterstützung.

    Also bis danne

    P.S. ach ja der Rote geht auf mich werde
    mal gleich eine Flasche davon bei ALDI
    ordern:)

    1. Hallo Mathias

      Verwende bitte kein window.location.href="#test"; auf die aktuelle Seite. Weil Opera dabei die Seite neu lädt, ruft er die Funktion wieder auf, lädt die Seite, ruft die Funktion auf, ... eine wunderschöne Endlosschleife!

      Beschäftige dich lieber mit Struppis Vorschlag!

      [pref:t=63505&m=360242]

      Detlef