Wyan: Verweismenu

Hi

Habs mir hier angeschaut und auch so übernommen(siehe. Verweismenu) nur die Beschriftung und die Links im Menu angeglichen, doch tut sich nichts wenn ich einen Punkt auswähle.

Meine Quellcode:

<form action=""><select size=1 name="Auswahl"
  onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
  style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
  width="250">
<option value="nothing">[ bitte auswählen! ]</option>
<option value="nothing">------------------------</option>
<option value="Movies.htm">Movies</option>
<option value="RechnerTotal.htm">Taschenrechner</option>
</select></form>

Hoffe ihr könnt mir weiterhelfen

Gruß

Mark

  1. Hallo Wyan,

    Hi

    Habs mir hier angeschaut und auch so übernommen(siehe. Verweismenu) nur die Beschriftung und die Links im Menu angeglichen, doch tut sich nichts wenn ich einen Punkt auswähle.

    Meine Quellcode:

    <form action=""><select size=1 name="Auswahl"
      onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
      style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
      width="250">
    <option value="nothing">[ bitte auswählen! ]</option>
    <option value="nothing">------------------------</option>
    <option value="Movies.htm">Movies</option>
    <option value="RechnerTotal.htm">Taschenrechner</option>
    </select></form>

    Hoffe ihr könnt mir weiterhelfen

    Ja, es wird sich nichts tun, außer einem Scriptfehler oder vergleichbarem. Der Grund: Der Eventhandler onChange ruft die Funktion Go() auf, die du wahrscheinlich nicht kopiert hast, stimmts?

    Ich könnte dir aber wenn du willst was zusammenschreiben, was sie nämlich tud, ist unschwer zu erraten:

    function Go(uri)
    {
      if(uri != "nothing") {
        location.href = uri; }
    }

    Das war's auch schon. Müsste gehn, wenn du's in einen <script type="text/javascript">-Tag steckst und in den header packst.

    WauWau

    --
    ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
    WauWau E-Mail: coming soon
    1. hallo WauWau,

      Der Eventhandler onChange ruft die Funktion Go() auf, die du wahrscheinlich nicht kopiert hast, stimmts?

      Das ist möglich.

      Ich könnte dir aber wenn du willst was zusammenschreiben

      Warum denn? Er hat doch das "Original" bereits, und da stehts auch drin, muß bloß abgeschrieben und angepaßt werden.

      function Go(uri) {
        if(uri != "nothing") {location.href = uri; }
      }
      Das war's auch schon. Müsste gehn

      Da wäre ich nicht so sicher. Es kommt auf den Gesamt-Kontext an.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph,

        Der Eventhandler onChange ruft die Funktion Go() auf, die du wahrscheinlich nicht kopiert hast, stimmts?
        Das ist möglich.

        ich halte es nach anbetracht des Eventhandlers für sicher.

        Ich könnte dir aber wenn du willst was zusammenschreiben
        Warum denn? Er hat doch das "Original" bereits, und da stehts auch drin, muß bloß abgeschrieben und angepaßt werden.

        eigentlich schon, ja, aber die 2 zeilchen haben meiner tastatur jetzt auch nicht geschadet.

        function Go(uri) {
          if(uri != "nothing") {location.href = uri; }
        }
        Das war's auch schon. Müsste gehn
        Da wäre ich nicht so sicher. Es kommt auf den Gesamt-Kontext an.

        Wieso? das, was ich von seinem <select> gesehen habe, machte den eindruck, dass <option>s, die nicht irgendwohinführen sollen den value "nothing" bekamen, alle anderen die uri. der eventhandler rufte die funktion go() auf und verpasste ihr als parameter den value des selektierten <option>. Wenn ich also nun in der Funktion Go() schaue, ob der Parameter _nicht_ "nothing" ist (denn dann soll er ja nicht weiterleiten), und dann zur mithilfe des Parameters übergebenen Uri weiterleite, müsste es soweit klappen.

        Afaik muss die funktion in diesem falle nicht noch so ein true oder false zurückliefern, oder?

        WauWau

        --
        ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
        WauWau E-Mail: coming soon
        1. hallo nochmals,

          Der Eventhandler onChange ruft die Funktion Go() auf, die du wahrscheinlich nicht kopiert hast, stimmts?
          Das ist möglich.
          ich halte es nach anbetracht des Eventhandlers für sicher

          Du hast zu schnell gelesen. Ich bezweifle nicht den Funktionsaufruf, ich halte aber genauso wie du für möglich, daß die Javascriptfunktion nicht mit abgeschrieben wurde.

          Es kommt auf den Gesamt-Kontext an.
          Wieso? das, was ich von seinem <select> gesehen habe, machte den eindruck, dass <option>s, die nicht irgendwohinführen sollen den value "nothing" bekamen, alle anderen die uri.

          Richtig. Aber schau dir das Original in der SELFHTML-Quickbar doch auch nochmal an. Es wird ja Gründe geben, weshalb dort nicht nur ein "location.href" angegeben ist, sondern auch noch
             document.forms[0].reset();
             document.forms[0].elements[0].blur();
          Daß die Quickbar in einem Frameset realisiert ist, spielt keine Rolle.

          Wenn ich also nun in der Funktion Go() schaue, ob der Parameter _nicht_ "nothing" ist

          Dann kann er alles mögliche andere sein. Im Moment sind es tatsächlich Verweise auf andere Seiten, aber vielleicht möchte Mark später mal seine Auswahl erweitern oder unterschiedliche Clickziele unterschiedlich behandeln, wie das ja auch die Quickbar tut.

          Afaik muss die funktion in diesem falle nicht noch so ein true oder false zurückliefern, oder?

          Ich weiß nicht genau, was du jetzt mit "true oder false" meinst. Ein "return" ist aber durchaus geraten.

          Mark hat aber offenbar noch mehr vor. Er hat im <form> bereits ein "action" angelegt, das im Moment zwar noch leer ist, aber wer weiß, was er da noch reinbasteln möchte. Ich habe es zwar noch nicht probiert, aber ich denke, es ist möglich, auf den EventHandler ganz zu verzichten und stattdessen eben irgendwas über ein Script machen zu lassen.

          Grüße aus Berlin

          Christoph S.

          1. Hallo Christoph,

            Der Eventhandler onChange ruft die Funktion Go() auf, die du wahrscheinlich nicht kopiert hast, stimmts?
            Das ist möglich.
            ich halte es nach anbetracht des Eventhandlers für sicher
            Du hast zu schnell gelesen. Ich bezweifle nicht den Funktionsaufruf, ich halte aber genauso wie du für möglich, daß die Javascriptfunktion nicht mit abgeschrieben wurde.

            Hmm, ich weiß ja nicht, welcher Fehler Mark erhalten hat, aber da er uns als einzigen Seitenquelltextauszug dieses Formular gegeben hat - und keinen Script - gehe ich davon aus, dass er auch keinen Script hat, ihn also wie du bereits geschrieben hast vergessen hat, und habe ihm dementsprechend was geschrieben. Dass der Eventhandler letztenendes die Funktion Go() aufruft, steht wohl in Anbetracht des Quelltextes zweifelsfrei fest.

            Richtig. Aber schau dir das Original in der SELFHTML-Quickbar doch auch nochmal an. Es wird ja Gründe geben, weshalb dort nicht nur ein "location.href" angegeben ist, sondern auch noch
               document.forms[0].reset();
               document.forms[0].elements[0].blur();
            Daß die Quickbar in einem Frameset realisiert ist, spielt keine Rolle.

            Ach so, ich wusste nicht, dass seine "Quickbar" eine Kopie der Selfhtml-Quickbar ist. Na gut, und wie ich auch bereits geschrieben habe, kann es sein, dass eben noch ein return dabei sein soll und weiteres, was ich nicht bedacht habe. reset() ist eigentlich ganz sinnvoll, da das <select> ja bei Auswahl z.B. eines <option>------------</option>-Trennbalkens möglichst zurückgesetzt werden sollte (der Trennbalken also nicht markiert bleiben sollte), und blur() macht natürlich auch sinn, da das <select> ja nach anklick verlassen werden sollte.

            Wenn ich also nun in der Funktion Go() schaue, ob der Parameter _nicht_ "nothing" ist

            Dann kann er alles mögliche andere sein. Im Moment sind es tatsächlich Verweise auf andere Seiten, aber vielleicht möchte Mark später mal seine Auswahl erweitern oder unterschiedliche Clickziele unterschiedlich behandeln, wie das ja auch die Quickbar tut.

            Genau, da hast du vollkommen recht! Ich habe mich natürlich hier nur auf "Grundmöglichkeiten" konzentriert, es wäre ohne Probleme machbar, etwas wie das folgende zu schreiben:

            <option value="link:http://wwww.google.de">Google</option>
             <option value="window:http://www.google.de">Google im neuen Fenster</option>
             <option value="site:close">Fenster schließen</option>

            Und hierbei dann den gewonnenen value anhand des ":" zu "splitten", und anschließend ein switch einzubauen, welcher anhand des vor-dem-:-stehenden bestimmte sachen macht, z.B.:

            var values = OPTIONSVALUE.split(":");
             switch(values[0]) {
               case "link": location.href = values[1]; break;
               case "window": window.open(values[1], "fenster", "..."); break;
               case "site":
                switch(values[1]) {
                  case "close": window.close(); break;
                  case "back": location.go(-1); break;
                  ...
                }
               break;
               ...
             }

            Den Möglichkeiten sind keine Grenzen gesetzt, und man könnte z.B. die obige Aufgabe auch ganz anders bewerkstelligen.

            Wenn Mark letztenendes was größeres als ein simples auswahlmenüchen geplant hätte, dann hätte er wegen dem "Peanuts" hier (simples funktiönchen) auch nicht ein thread erstellt. In anbetracht der Umstände glaube ich nämlich nicht, dass Mark sowas wie ich z.B. gerade geschrieben habe machen will oder sogar kann.

            Afaik muss die funktion in diesem falle nicht noch so ein true oder false zurückliefern, oder?
            Ich weiß nicht genau, was du jetzt mit "true oder false" meinst. Ein "return" ist aber durchaus geraten.

            Mit true oder false meine ich "return true;" oder "return false;". wieso soll hier eigentlich ein return zu raten sein? Wozu würde es benötigt werden?

            Mark hat aber offenbar noch mehr vor. Er hat im <form> bereits ein "action" angelegt, das im Moment zwar noch leer ist, aber wer weiß, was er da noch reinbasteln möchte. Ich habe es zwar noch nicht probiert, aber ich denke, es ist möglich, auf den EventHandler ganz zu verzichten und stattdessen eben irgendwas über ein Script machen zu lassen.

            Ich kann mir nicht richtig vorstellen, dass Mark etwas größeres vorhat, aber wo ist denn das problem, wenn? Er kann doch letztenendes machen was er will - und wenn er ein ordentliches Formular mit einem netten Absenden-Button augsetzt und dann einen onSubmit aufsetzt, welches was mit dem <select> macht.... oder wenn er letztenendes dann was serverseitiges macht.

            WauWau

            PS: Wieso nennen wir Wyan eigentlich "Mark"?

            --
            ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
            WauWau E-Mail: coming soon
  2. onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
      style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"

    nebenbei bemerkt ist 'pt' keine Eionheit für den Monitor und führt auf verschiednen Rechnern zu völlig unterschiedlichen Ergebnissen. http://www.netandmore.de/faq/fom-serve/cache/414.html

    Struppi.

  3. hi,

    du hast zu diesem thema bereits hier [pref:t=77427&m=446898] gefragt.

    bitte lies </faq/#Q-11>, und poste nicht gleich erneut, wenn dir zu schnell die geduld ausgeht.

    gruss,
    wahsaga