Luis: Problem mit if Abfrage

Hallo Fachleute,

warum funktioniert mein Script nicht?

<script type="text/javascript">
//Ermittlung der aufgerufenen Domain
Herkunft = window.location.host;
//alles klein, damit kein Fehler beim Vergleich
Herkunft = Herkunft.small();

if (Herkunft == ('www.schmuckunduhren.de'))  {
     open("www.schmuckunduhren.de/frame-schmuck.htm", target="_top");
   }

if (Herkunft == ('www.uhrmachermeister.de'))  {
     open("www.uhrmachermeister.de/frame-uhren.htm", target="_top");
   }

if (Herkunft == ('www.juwelier-blank.de'))  {
     open("www.juwelier-blank.de/frame-wir.htm", target="_top");
   }

</script>

es muß an der if Abfrage liegen, die URL wird richtig erkannt. Wie macht man eine Abfrage für einen String in JS. Bei perl weiß ich, dass hier eq angebracht wäre, aber bei JS gibt´s das scheinbar nicht.

Vielen Dank für Antworten schon mal vorneweg!
Luis

  1. dein Fehler liegt hier:

    Herkunft = Herkunft.small();

    die methode small() gibt es nicht!
    verwende mal die methode toLowerCase() also folgendermassen:

    Herkunft = Herkunft.toLowerCase();

    1. dein Fehler liegt hier:

      Herkunft = Herkunft.small();

      die methode small() gibt es nicht!
      verwende mal die methode toLowerCase() also folgendermassen:

      Herkunft = Herkunft.toLowerCase();

      ehrlich??

      hab ich aber doch in selfhtml gefunden!
      SELFHTML\TQ.HTM

      und wenn ich "Herkunft" mit "document.write(Herkunft)" anzeigen lasse erscheint ja auch die Domain in Kleinbuchstaben, egal ob ich sie im Browser groß oder klein eingetippt habe.

      Also muß was mit meiner if Abfrage nicht stimmen, oder??

      Trotzdem danke für die Antwort
      Luis

      1. Moin!

        ehrlich??

        hab ich aber doch in selfhtml gefunden!
        SELFHTML\TQ.HTM

        Lade dir mal SelfHTML 8.0 runter, da sind viele Fehler bereinigt, und außerdem ist es eben die aktuelle Dokumentation. Version 7.0 (und Vorgänger) sind schlicht und einfach alt.

        und wenn ich "Herkunft" mit "document.write(Herkunft)" anzeigen lasse erscheint ja auch die Domain in Kleinbuchstaben, egal ob ich sie im Browser groß oder klein eingetippt habe.

        Tja, nur daß durch Herkunft.small() aus dem String eben was ganz anderes wird... du wirst meine andere Antwort gelesen haben...

        - Sven Rautenberg

      2. Ok,

        als ich die letzte Rückfrage eintippte, war erst eine Antwort hier und schwups sind es so viele.

        Ich glaube ich habe kapiert, Danke.

        Werde mich sofort an die Arbeit machen!

        Luis

    2. Moin!

      dein Fehler liegt hier:

      Herkunft = Herkunft.small();

      die methode small() gibt es nicht!

      Doch, die gibts, und die funktioniert auch ganz prima - wenn man will, was sie tut.

      http://selfhtml.teamone.de/javascript/objekte/string.htm#small

      verwende mal die methode toLowerCase() also folgendermassen:

      Herkunft = Herkunft.toLowerCase();

      - Sven Rautenberg

    3. dein Fehler liegt hier:

      Herkunft = Herkunft.small();

      die methode small() gibt es nicht!
      verwende mal die methode toLowerCase() also folgendermassen:

      Herkunft = Herkunft.toLowerCase();

      stimmt, anscheinend gibts die doch,
      aber wer braucht denn so was????????????????

  2. hallo

    if (Herkunft == ('www.schmuckunduhren.de'))  {
         open("www.schmuckunduhren.de/frame-schmuck.htm", target="_top");
       }

    weniger klammern:

    if (Herkunft == 'www.uhrmachermeister.de')  {
         open("www.uhrmachermeister.de/frame-uhren.htm", target="_top");
      }

    ich glaube das die klammern (siehe oben) zu viel sind!

    schöne grüße
    FICHTL

  3. Hallo Fachleute,

    warum funktioniert mein Script nicht?

    <script type="text/javascript">
    //Ermittlung der aufgerufenen Domain
    Herkunft = window.location.host;
    //alles klein, damit kein Fehler beim Vergleich
    Herkunft = Herkunft.small();

    ^^^^^^^
    Soll das den Servernamen in Kleinbuchstaben wandeln? Das wird es nicht tun! toLowerCase() benutzen, das funktioniert, weil es genau das macht, was du willst. small() erzeugt Kleinschrift.

    Dir hätte übrigens an dieser Stelle ein einfaches:
    alert(Herkunft);
    geholfen herauszufinden, mit was da verglichen wird. Denn oh Wunder: Der String wird in "<small>" und "</small>" eingebettet. Genau das, was die Funktion machen soll.

    if (Herkunft == ('www.schmuckunduhren.de'))  {

    ^                        ^
    Warum sind da Klammern? Weg damit. Stört zwar nicht unbedingt, ist aber ganz sicher sinnlos. Abgesehen davon: Bist du sicher, daß window.location.host die hier gewünschte Information liefert, oder könnten da noch weitere Zeichen drin sein? Das obige Alert würde es aufzeigen.

    open("www.schmuckunduhren.de/frame-schmuck.htm", target="_top");
       }

    Bitte immer window.open verwenden. Und dann mal bei den Parametern nachgucken, was da angegeben werden muß. Das, was du hier versuchst, kann nicht funktionieren.

    http://selfhtml.teamone.de/javascript/objekte/window.htm#open

    Vor allem der zweite Parameter ist Müll.

    Und wenn du nur ganz simpel das vorhandene Fenster verwenden willst: window.location.href oder auch top.location.href benutzen.

    http://selfhtml.teamone.de/javascript/objekte/location.htm#href

    if (Herkunft == ('www.uhrmachermeister.de'))  {
         open("www.uhrmachermeister.de/frame-uhren.htm", target="_top");
       }

    if (Herkunft == ('www.juwelier-blank.de'))  {
         open("www.juwelier-blank.de/frame-wir.htm", target="_top");
       }

    </script>

    Für die beiden weiteren Abfragen gelten die Aussagen zur ersten Abfrage genauso.

    - Sven Rautenberg