David Hörpel: nicht funktionnierendes Skript

Hallo!

Zu folgendem Skript habe ich eine Frage:

function selectedtext()
                          {

if (top.location.pathname.substring(68,76) == 'English') {

if (document.all)
   { text = document.selection.createRange().text;  }
      else
   { text = document.selection; }

if (window.getSelection) { parent.Dict.location.href= "../Dict"/ + text.substring(0, 1) + ".html#" + window.getSelection() };
   else if (document.getSelection) {parent.Dict.location.href = "../Dict/" + text.substring(0,1) + ".html#" + window.getSelection()};
        else if (document.selection){parent.Dict.location.href = "../Dict/" + text.substring(0,1) + ".html#" + document.selection.createRange().text};
           else if (document.selection){parent.Dict.location.href = "../Dict/" + text.substring(0,1) + ".html#" + document.selection.createRange().text + "1"};

}

else alert("Leider hast du weder Möglcihkeit A noch B ausgewählt!")
;       }

Dieses Skript prüft die Zeichen von 68-76 des Url-Pfades. Wie bekommen ich jetzt hin, dass in dieser Zeile
if (top.location.pathname.substring(68,76) == 'English')
die Bezeichnung "English" als ein Teil des URL-Pfades identifiziert wird? Ich habe es bisher mit einfachen, doppelten und ohne Anführungszeichen versucht, aber jedes Mal umgeht er meine If-Abfragen.

Gruß David!

  1. Hallo David,

    else alert("Leider hast du weder Möglcihkeit A noch B ausgewählt!")

    Dieses Skript prüft die Zeichen von 68-76 des Url-Pfades. Wie bekommen ich jetzt hin, dass in dieser Zeile
    if (top.location.pathname.substring(68,76) == 'English')

    Drei Probleme habe ich mit dieser Zeile:

    • Die Zeichen 68-76 eines Strings können nie einen Teilstring "English" bilden, da "English" nur aus 7 Buchstaben besteht, zwischen 68 und 76 (beide inklusive) aber 9 Zahlen liegen.

    • AFAIK kann man den URL eines Frames über "location.href" auslesen. Ob "location.pathname" auch geht, weiß ich aber nicht.

    • Die Indexangabe bei substring basiert auf Null. Das heißt, dass du das erste Zeichen eines Strings mit dem Parameter 0 ansprechen würdest, das zweite mit 1, das dritte mit 2, ..., und dass achtundsechzigste mit 67. Der erste Parameter müsste also 67 sein. Beim zweiten Parameter stimmt die Angabe von 76 aber bereits, weil du damit das erste Zeichen angibst, das *nicht* mehr extrahiert werden soll, also das siebenundsiebzigste.

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

    Viel Erfolg,
    Robert

    --
    Dieser Beitrag wurde zu 100% aus ganzen Sätzen hergestellt und ist biologisch abbaubar.
  2. Zu folgendem Skript habe ich eine Frage:

    Kann es sein, dass du seit Tagen immer wieder mehr oder wenger das gleiche postetst?

    if (top.location.pathname.substring(68,76) == 'English') {

    Guck dir mal die Funktion String.indexOf an darüber hinaus wären auch reguläre expressions für dich interessant, außerdem, String.toUpperCase/toLowerCase

    Dann solltest du, bevor du sowas fragst wie, "es geht nicht" ausprobieren.

    var url = top.location.href;
    var slash = url.lastIndexOf('/');
    var check = url.substring(i, i + 7).toLowerCase();
    alert('vergleiche:' + check);

    if (check == 'english') alert('stimmmt');

    oder:

    var url = top.location.href.toLowerCase();

    if( url.indexOf('english') > -1) alert('stimmt');

    usw.

    Les mal http://selfhtml.teamone.de/javascript/objekte/string.htm da findest du eine vielfältiges Sammelsurium von Funktionen rund um Strings.

    Struppi.