Ergebnis 1 bis 10 von 10
Like Tree2Likes
  • 1 Post By ein schlauer
  • 1 Post By kkapsner

Thema: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

  1. #1
    bernhardp ist offline Grünschnabel
    registriert
    15-03-2013
    Beiträge
    2

    Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Hallo,

    Ich konnte zu meiner Frage in der Suche nichts passendes finden.

    Für eine Studienarbeit soll Ich aus zwei Arrays Daten (Benutzernamen und Kennwort) abfragen und abgleichen.
    Hat keinen praktischen Nutzen, wer würde schon solche Daten in Arrays speichern.

    Ich habe jetzt hierfür folgenden Code, welcher auch in Firefox und Internetexplorer funktioniert. in Chrome und Safari(unter OS X) allerdings nicht.
    Ich wär auch dankbar wenn ihr mich auf meinen Fehler aufmerksam machen könnt.

    Code:
    var pw= ["Peter1","Hans1","Karl1","Hugo1"];
    var name= ["Peter","Hans","Karl","Hugo"];
    
    do{
    
    var username=prompt("Sag mir werter Freund, wie ist dein Name");
    var index_username =name.indexOf(username);
    }
    while (index_username=="-1")
    
    do{
    
    var password=prompt("Sag mir werter Freund, wie ist dein Kennwort");
    var index_password =pw.indexOf(password);
    }
    while (index_password!=index_username ||password!=pw[index_password] )
    LG,

    Bernhard

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    https://developer.mozilla.org/en-US/.../Array/indexOf
    indexOf is a recent addition to the ECMA-262 standard; as such it may not be present in all browsers. You can work around this by inserting the following code at the beginning of your scripts,
    bernhardp likes this.

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.677

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Das ist sehr seltsames Verhalten. Hab' es gerade im neuesten Chrome nachvollzogen und anscheinend liegt das an dem Variablennamen "name". Wenn ich da "Hans" als Nutzername eingebe, kommt als Index 6 und nicht 1 zurück...

    Wenn du die Variable anders nennst (z.B. "namen") tritt das Problem nicht auf.
    bernhardp likes this.

  4. #4
    bernhardp ist offline Grünschnabel
    registriert
    15-03-2013
    Beiträge
    2

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Zitat Zitat von kkapsner Beitrag anzeigen
    Das ist sehr seltsames Verhalten. Hab' es gerade im neuesten Chrome nachvollzogen und anscheinend liegt das an dem Variablennamen "name". Wenn ich da "Hans" als Nutzername eingebe, kommt als Index 6 und nicht 1 zurück...

    Wenn du die Variable anders nennst (z.B. "namen") tritt das Problem nicht auf.
    top, danke!

  5. #5
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Sieht so aus, als ob Chrome (Safari hab ich nciht), zuerst die String.indexOf() Methode aufruft. Sehr seltsam.

    Code:
    var name= ["Peter____","Hans","Karl","Hugo"];
    alert(name.indexOf === Array.prototype.indexOf);
    alert(name.indexOf === String.prototype.indexOf);
    Firefox/Opera: true/false
    Chrome: false/true

    Das hat offenichtlich damit zu tun, dass window.name existiert (das passiert auch bei anderen window Eigenschaften) und läßt sich vermieden, wenn man in einem eigenen "Namespace" arbeitet, also einfach eine anonyme Funktion drumherum baut.

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.677

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Dann verstehe ich aber nicht, warum dann 6 als Index zurückgegeben wird... der Fenster-(Tab-)Name war eigentlich "codeExecutor"... das ist kein "Hans" drin...

  7. #7
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    name wird ja trotzdem überschrieben mit dem Array. Da ein Array aber auch eine StringOf Funktion hat, ist Hans an der 7. Stelle, von der Ausgabe die du auch siehst wenn du einfach ein alert(name) machst. Der gleiche Effekt tritt auch bei status auf.

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.677

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Ah - jetzt ergibt das Sinn... auch wenn es nicht ganz logisch ist (also das, was das Webkit macht...).

  9. #9
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Ja, logisch ist das nicht.

    Wobei:
    Code:
    var name= ["Peter","Hans","Karl","Hugo"]; 
    alert(name.length); // 20! im Chromium
    alert(name[1]); // e!
    Die Zuweisung wandelt automatisch das Array in einen String.

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.677

    AW: Probleme mit Webkit Browsern bei Schleifen mit indexOf()

    Und was lernen wir daraus? Variablen nicht mit alert, sondern immer mit console.log ansehen...

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 25-11-2010, 15:24
  2. JS Probleme in Webkit Browsern
    Von htsl im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 14-09-2010, 14:27
  3. Antworten: 3
    Letzter Beitrag: 30-05-2006, 00:19
  4. Antworten: 21
    Letzter Beitrag: 17-03-2006, 15:50
  5. Probleme mit CSS-Menü in verschiedenen Browsern
    Von jump.blueberry im Forum CSS und (X)HTML
    Antworten: 12
    Letzter Beitrag: 01-12-2005, 18:03

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •