2016-09-11 14 views
8

Mam fragment kodu JS, który analizuje plik, a następnie przypisuje tę tablicę do mapy pary klucz-wartość, a następnie iteruje ją, aby znaleźć właściwą nazwę miasta z metodą .include. Mój problem polega na tym, że ostatnie pole (gdzie nazywa się dana funkcja) działa dobrze na moim końcu zarówno w przeglądarce Chrome, jak i Firefox. To nie działa z jakiegoś powodu dla moich członków grupy.Ten sam kod, ta sama przeglądarka, inne zachowanie dla użytkowników

Jest to urywek JS że robi Iterowanie:

Edit: to jest jak plik jest otwarty:

var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", "../data/myFile.txt", false); 

for (var i = 0; i < allText.length; i++) { 
    if (i % 2 == 0) { 
    myMap[allText[i]] = allText[i + 1]; 
    } 
} 

var city = document.getElementById("city").value; 
for (var key in myMap) { 
    if (myMap.hasOwnProperty(key)) { 
    if (myMap[key].toLowerCase().includes(city.toLowerCase())) { 
     document.getElementById("city").value = myMap[key] 
     document.getElementById("zipcode").value = key; 
    } 
    } 
} 

Jest to część html, który nazywa go :

<label for="myLabel">City: </label> 
<input type="text" name="myLabel" id="myLabel" onblur="readTextFile()"> 

Co dokładnie mogę jest problem i jak mogę go rozwiązać, ponieważ nie ma dla mnie sensu, pochodzącego ze świata Java i C++, gdzie nigdy wcześniej nie spotkałem się z takim problemem. Jeśli zastanawiasz się, dlaczego JS może być trochę brzydka, jest to wynik ucznia z nauczycielem, który myśli, że pokazywanie przykładów W3Schools jest równoznaczne z dobrym nauczaniem.

+0

użyj chrome i przejdź przez ten kod, przejdź do zakładki źródeł (f12) i umieść punkt przerwania w linii problemu? – saj

+0

Cóż, dla mnie to nie ma znaczenia, jak to działa na moim końcu. Sądzę, że mogą spróbować. – SomeStudent

+3

dlaczego zadać pytanie, czy to nie ma znaczenia – saj

Odpowiedz

1

Funkcja Javascript może działać nieprawidłowo z powodu niektórych przeglądarek, które jej nie obsługują. Trzeba być mądrym przy wyborze funkcji javascript, szczególnie gdy mozilla może mieć pewne funkcje, które nie są obsługiwane w niektórych przeglądarkach. W3schools dostarcza również listę obsługi przeglądarki dla funkcji. Sprawdź poniższy link do tej listy na obejmuje funkcję:

http://www.w3schools.com/jsref/jsref_includes.asp

Alternatywnie, można użyć funkcji IndexOf jak:

 myMap[key].toLowerCase().indexOf(city.toLowerCase()) >= 0 

mam sobie napotykanych problemów ze zawiera funkcję stąd zapewniając obejście. Szczęśliwe programowanie.

+0

zrobi to. – SomeStudent

Powiązane problemy