我创建了目录搜索功能,并使用ajax调用了项目文件夹中的文件。它可以在Chrome和Firefox中使用,但有时只能在Internet Explorer中使用。
我已经使其可以在Internet Explorer中工作,但这需要我将代码复制并粘贴到新文件夹中,并希望它能工作。这是一种奇怪的行为,因为我没有更改代码中的任何一件事情,有时它可以工作。
如果我可以在Internet Explorer上运行它并复制/粘贴“工作中”的文件,那么它就不会总是正常工作。
最初,我使用的是IE不支持的ES6,但是我已经解决了这些问题。我认为.ajax调用可能有问题吗?但是我不知道是什么。
AJAX通话
function getADInfo(){
$.ajax({
url: "../../js/roster.json",
method: 'GET',
dataType: 'json',
cache: false,
success: function(data) {
console.log('success from getADInfo');
// employees.push(...data);
Array.prototype.push.apply(employees, data);
},
error: function(err) {
console.error(err);
}
});
}
这应该搜索json文件并显示匹配项
function findMatches(wordToMatch, employees) {
return employees.filter(function(person) {
var regex = new RegExp(wordToMatch, 'gi');
var nameString = person.Name.split(", ")[1] + " " + person.Name.split(", ")[0];
var displayFirstName = person.DisplayName.split(", ")[1];
return person.GivenName.match(regex) || person.Surname.match(regex) || nameString.match(regex) || displayFirstName.match(regex);
});
}
function displayMatches() {
$('.suggestions').show();
var matchArray = findMatches(this.value, employees);
// var html = matchArray.slice(0,10).map(person => {
// var regex = new RegExp(this.value, 'gi');
// var firstName = person.GivenName.replace(regex, `<span class="hl">${this.value}</span>`);
// var lastName = person.Surname.replace(regex, `<span class="hl">${this.value}</span>`);
// var extension;
// if (person.Phone_Ext1 !== null){
// extension = person.Phone_Ext1;
// } else {extension = "N/A"}
// return `
// <li class="search-item" data-id=${person.EmployeeID}>
// <span class="person">${firstName} ${lastName}</span>
// <span class="phone-ext">Ext. ${extension}</span>
// </li>
// `
// }).join('');
var html = [];
for(var i=0; i < matchArray.slice(0,10).length; i++){
var person = matchArray.slice(0,10)[i];
var regex = new RegExp(this.value, 'gi');
var hilight = '<span class="hl">' + this.value + '</span>';
var firstName = person.GivenName.replace(regex, hilight);
var lastName = person.Surname.replace(regex, hilight);
var extension;
var showdisplayname;
if (person.DisplayName.split(", ")[1] !== person.GivenName){
showdisplayname = "(" + person.DisplayName.split(", ")[1] + ")";
showdisplayname = showdisplayname.replace(regex, hilight);
} else {
showdisplayname = "";
}
if (person.Phone_Ext1 !== null){
extension = person.Phone_Ext1;
} else {
extension = "N/A"
}
var list =
'<li class="search-item" data-id=' + person.EmployeeID +'>' +
'<span class="person">' + firstName + ' ' + lastName + ' ' + showdisplayname + '</span>' +
'<span class="phone-ext">Ext. ' + extension + '</span>' +
'</li>';
html.push(list);
}
html = html.join('');
if ($('#search-box').val() == ""){
suggestions.innerHTML = "";
} else {
suggestions.innerHTML = html;
}
}
当我键入内容时,将出现一个下拉菜单,但Internet Explorer上没有任何反应。在其他浏览器上也可以正常工作。 当我检查控制台时,状态为200,但这是错误