Martin: Verweisliste als Auswahlliste - innerhalb des Dokuments

Hi,

es geht um "Verweislisten als Auswahllisten" - Im Archiv war ich gerade.

Mein Ziel: das Pulldowm-Menü soll nicht andere Seiten referenziern, sondern es sollen verschiedene Zeilen (=<a name="XXX">) einer Tabelle innerhalb desselben Dokumentes angesprungen werden.

Naiv, wie ich bin, habe ich es zunächst so versucht:

<select type="select">
           <option ><a name="Ring 12">Ringe</a>...

Die Zeile mit dem Text "Ring 12" wird natürlich nicht angesprungen.

Geht das irgendwie mit Javascript? Mit welchem Objekt müßte ich dann arbeiten?

..habe es schon mit einer Funktion versucht, die in Abhängigkeit des übergebenen values (<option value="Ringe") eine Variable y="<a name="Ring 12")></a> mit document.write(y); ausgibt.
Das muß aber sowieso der falsche Weg sein, da ich mir ja dadurch nur neue Verweisanker definiere (im übrigen passiert zwar etwas (nur im IEP5), aber es öffnet sich ein weißes Fenster. Das liegt wohl daran, daß ich das "document.write"-Konzept nicht verstanden habe. Eigentlich darf ja auch der Bereich zwischen <a..> und </a> nicht leer sein....).

Wer gibt mir einen Tip?

Danke und viele Grüße, Martin

  1. Hi!

    Ich hab dieses Problem auf folgende Art gelöst:

    Die JS-Funktion:

    function GO() {
      var i = document.frm.sel.options.selectedIndex
      hash = parent.frames['suche'].document.frm.sel.options[i].value;  
      this.location.hash = hash;
    }

    HTML Select:

    <FORM name="frm">
    <SELECT name='sel' onChange="GO();">
    <OPTION Value="Ring 12">Name
    :
    :
    </FORM>

    Was mir Sorgen macht ist das Leerzeichen in "Ring 12". Laß es mich bitte wissen obs klappt.

    Grüße
    fredy

    1. Hi Fredy,

      erst einmal Danke für die Hilfe (Dir natürlich auch, Thomas!)

      function GO() {
        var i = document.frm.sel.options.selectedIndex
        hash = parent.frames['suche'].document.frm.sel.options[i].value;  
        this.location.hash = hash;
      }

      HTML Select:

      <FORM name="frm">
      <SELECT name='sel' onChange="GO();">
      <OPTION Value="Ring 12">Name
      :
      </FORM>

      Nee, funktioniert (noch?) nicht. Zumindest passiert nichts.
      Aber villeicht hatte ich mein Ziel auch zu ungenau beschrieben.
      Ich habe  eine riesige Tabelle, die Elemente (tr's) Ring 1 ...Ring 12, Armband 1....Armband 24 etc. enthält. Über die Spalte kommt die Auswahlliste (<option>Ringe; <option> Armbänder...).
      Wenn man nun die Auswahl "Ringe" oder "Armbänder" wählt, soll an die Tabellenzeile/zelle mit dem Inhalt "Ring 1" bzw. "Armband 1" (<tr><td>Ring 1</td></tr> bzw. <tr><td>Armband 1</td></tr>) "gesprungen" werden.
      Wenn ich in eine <td>ring_12</td> habe und der entsprechende <option value="ring_12> gesetzt ist, gibt mir alert (hash); in GO() zwar den Wert "ring_12" zurück, aber ein Sprung/Scrollen zur entrpechenden Zeile der Tabelle findet nicht statt.

      Rat?

      Wo (html) ist Deine Lösung zu begutachten??

      Grüße, Martin

    2. Hi Fredy,

      ich bin's nochmal :-)
      Also, im MSIEP habe ich es zum laufen gebracht. Eines verstehe ich aber nicht:

      function Go()
      {
      alert ("Microsoft")
      var i = document.tab.auswahl.options.selectedIndex;
      alert (i);
      hash = parent.frames['MainFrame'].document.tab.auswahl.options[i].value;
      1: alert (hash);
      this.location.hash = hash;
      2: alert (this.location.hash);
      }

      Müssten die zurückgegebenen Werte aus 1: und 2: nicht identisch sein?

      Zum NN (4.51):

      Der hat wohl einen kleinen Schuß ;--))

      Änderungen im Dokument setzt er teilweise erst nach einem Neustart (!) um, selbst Speicher- und Plattencache löschen nutzt nichts. Weird!

      Grüße, Martin

  2. Hallo Martin!

    <select type="select">
               <option ><a name="Ring 12">Ringe</a>...

    sollte es da nicht:
    <a href="#ring_12">Ringe</a> stehen und  dann in der Tabelle <a name="ring_12"> !?

    PS: ich würde von Leerziechen im Verweisen (also im href="...") abraten und auch nur klein Schreibung verwenden, (wegen Dateinamen Schreibung .. man gewöhnt sich schnell etwas falsches an)

    Grüße
    Thomas

  3. Hallo,

    hier ist ein kleines Beispiel welches auch funktionieren sollte, wenn man die Sprungziele auf    
                              ='seite.html#ring12';
                              ='seite.html#uhr';
    ..usw. abaendert.

    Bye
      Andreas

    <script language="JavaScript">
    <!--

    function changepage() {
         page = new Array(9);
         page[0] = 'false';
         page[1] = 'false';
         page[2] = 'indexhome.html';
         page[3] = 'unternehmen/indexunternehmen.html';
         page[4] = 'veranstaltungen/indexveranstaltungen.html';
         page[5] = 'neuheiten/indexstart.html';
         page[6] = 'produkte/indexhome.html';
         page[7] = 'haendler/indexhaendler.html';
         page[8] = 'dialog/indexdialog.html';
         neu = page[document.auswahl.menu.selectedIndex];    
         if (neu != 'false') parent.location.href=neu ;      
       }

    //-->

    ................

    <form name=auswahl >
          <select name="menu" size=1 onChange = "changepage();">
            <option selected>Ihre Auswahl
            <option>--------------
            <option>Homepage
            <option>Das Unternehmen
            <option>Veranstaltungen
            <option>Neuheiten
            <option>Produkte
            <option>Händler
            <option>Dialog</select></form>