我的代码/ javascript有时可以在Internet Explorer中工作,有时却不能。它适用于所有其他浏览器

时间:2019-03-28 15:23:16

标签: javascript ajax internet-explorer

我创建了目录搜索功能,并使用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,但这是错误

Example

0 个答案:

没有答案