相同的代码,相同的浏览器,用户的不同行为

时间:2016-09-11 01:15:52

标签: javascript html

我有一段JS代码解析文件,然后将数组与键值对映射相关联,然后通过它迭代它以使用.includes方法查找正确的城市名称。我的问题是最后一个字段(有问题的函数被调用)在我的Chrome和Firefox上运行良好。由于某些原因,我的小组成员无法正常工作。

这是执行迭代的JS片段:

编辑:这是文件的打开方式:

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;
    }
  }
}

这是调用它的html部分:

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

究竟是什么问题以及我如何解决它,因为它对我来说毫无意义,来自Java和C ++的世界,我以前从未遇到过这样的问题。如果你想知道为什么JS可能有点难看,那就是一个老师的学生认为展示W3Schools的例子相当于好的教学的结果。

1 个答案:

答案 0 :(得分:1)

由于某些浏览器不支持,因此Javascript包含的函数可能会运行不正常。当mozilla可能具有某些浏览器不支持的某些功能时,你需要明智地选择javascript函数。 W3schools还提供了一个功能的浏览器支持列表。请查看以下链接以获取包含该功能的列表:

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

或者,您可以使用indexOf函数,如:

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

我自己遇到了包含功能的问题,因此为您提供了一种解决方法。快乐的节目。