繁体   English   中英

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

[英]Same code, same browser, different behavior for users

我有一段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示例等同于良好的教学。

由于某些浏览器不支持Javascript包含功能,因此可能无法正常工作。 在选择javascript函数时,尤其是在mozilla可能具有某些浏览器不支持的函数时,您需要明智地选择。 W3schools还提供了对功能的浏览器支持的列表。 在下面的链接中查看包含功能的列表:

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

另外,您可以使用indexOf函数,例如:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM