[英]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.