繁体   English   中英

此JavaScript始终使IE崩溃

[英]This JavaScript consistently crashes IE

我创建了一个小的搜索功能,该功能将浏览一堆XML数据并根据用户的查询提取结果,它在Chrome中运行流畅,但是在用户输入大约两个字符后,它始终使IE11崩溃。

在您问之前,我正在使用直接从MDN复制的.filter原型。 我之所以没有包含它,是因为它可以工作,并且这样做会使代码的长度加倍。

    function search() {
      var query = document.getElementById("query").value.toLowerCase();
      returnSearch(query);
    };

    //loads xml data
    function loadData() {
      var data = new XMLHttpRequest();
      data.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          getData(this);

        }
      };
      data.open("GET", "abbreviations.xml", true);
      data.send();
    };

    function getData(xml){
      var xmlDoc = xml.responseXML;
      var acronym = xmlDoc.getElementsByTagName("acronym");
      for(var i=0; i < acronym.length; i++) {


        content.push(acronym[i].getElementsByTagName("name")[0].childNodes[0].nodeValue + " means: "+ acronym[i].getElementsByTagName("meaning")[0].childNodes[0].nodeValue );
      }
    };
    function returnSearch(query) {
      var regexp = new RegExp(query, 'i');

      //Its laughable that ie dosen't accept arrow functions
      var results = content.filter(function (result) {
        return regexp.test(result);
      });



      document.getElementById('results').innerHTML = results;
      console.log(results);
    };

这在Chrome中可以正常运行,因此我的问题不在于如何操作,而更多是“为什么IE不喜欢这样”。

本质上,我最终使用了meta标签将IE强制为“ Edge”模式。 IE太挑剔了,如果某些内容无法正常工作,总是使用这个内容标签是个好主意,但是根据Microsoft的说法,如果在生产环境中进行操作,可能会遇到问题。

这个问题回答了我的问题: 使用标签强制IE兼容模式

以及MDN META标签和锁定未来兼容性中的这篇文章

暂无
暂无

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

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