Javascript 用于swagger的Js/Jquery注入脚本未在IE11上运行

Javascript 用于swagger的Js/Jquery注入脚本未在IE11上运行,javascript,jquery,Javascript,Jquery,我在IE11上没有运行这段代码时遇到了问题,我无法找出问题所在。我对java scrip和Jquery都是新手,这是我在网络中大摇大摆的一个扩展脚本。Web Api 基本功能:它使用API组/版本添加了2个新选项。一切都运行良好的铬 (function (){ var DiscoveryUrlSelector = Backbone.View.extend({ render: function () { // Nerenderuj opakovanÄ na relo

我在IE11上没有运行这段代码时遇到了问题,我无法找出问题所在。我对java scrip和Jquery都是新手,这是我在网络中大摇大摆的一个扩展脚本。Web Api

基本功能:它使用API组/版本添加了2个新选项。一切都运行良好的铬

(function (){
var DiscoveryUrlSelector = Backbone.View.extend({
    render: function ()
    {
        // Nerenderuj opakovanÄ na reloadu
        var defaultVal = this.$el.val()
        if (!this.$el.find('#input_' + this.options.name).length) {

            var container = $('<div class="input"></div>');
            var select = $('<select id="input_' + this.options.name + '" name="' + this.options.name + '"></select>');
            select
                .css('border', '1px solid gray')
                .css('padding', '3px')
                .css('width', '100px')
                .css('font-size', '0.9em');

            _.each(this.options.discoveryPaths, function (path)
            {
                var option = $('<option>' + path + '</option>');
                select.append(option);
            });

            select.val(defaultVal);

            if (this.options.name == 'Group')
                select.change(LoadVersionsForGroup);

            select.change(SetVersionedGroup);
            container.append(select);
            $("#api_selector > div:nth-child(2)").after(container);
        }    
        return this;
    }
});

new DiscoveryUrlSelector(
    {
        el: $('#api_selector'),
        name: 'Version',
        rootUrl: swashbuckleConfig.rootUrl,
        discoveryPaths: Array.from(new Set(swashbuckleConfig.discoveryPaths.map(x => x.substring(x.lastIndexOf("v"), x.length))))
    }).render();

new DiscoveryUrlSelector(
    {
        el: $('#api_selector'),
        name: 'Group',
        rootUrl: swashbuckleConfig.rootUrl,
        discoveryPaths: Array.from(new Set(swashbuckleConfig.discoveryPaths.map(x => x.substring(13, x.lastIndexOf("v")))))
    }).render();

function LoadVersionsForGroup()
{
    $('#input_Version option').each(function () {$(this).remove();});

    var versions = unique(swashbuckleConfig.discoveryPaths.filter(x => (x) => { return $("#input_Group").val() === x.substring(13, x.lastIndexOf("v")) }).map(x => x.substring(x.lastIndexOf("v"), x.length)))

    _.each(versions, function (path)
    {
        var option = $('<option>' + path + '</option>');
        $('#input_Version').append(option);
    });
}

function SetVersionedGroup(){
    $("#input_baseUrl").val(swashbuckleConfig.rootUrl + "/swagger/docs/" + $("#input_Group").val() + $("#input_Version").val())
}

function unique(list) {
    var result = [];
    $.each(list, function (i, e) {
        if ($.inArray(e, result) == -1) result.push(e);
    });
    return result;
}})();
编辑: 开发工具中也没有错误,元素只是不呈现。我还有另一个Jquery脚本,它添加了基本的Auth控件,并且工作得很好。 屏幕:


通过JS和Web开发,您将了解到的最重要的一点是,并非所有浏览器都是最新的。他为此臭名昭著。您可以使用不同的方法或更常用的方法来否定这一点。无论何时,只要你注意到chrome而不是firefox中存在的问题,请查看你正在使用的方法,并检查它们的支持情况

有几种很好的资源可用于检查浏览器兼容性。caniuse.com或developer.mozilla.org我强烈推荐使用MDN,它是学习JS和web开发的一个很好的资源

您也可以在兼容模式下运行chrome来测试这一点

话虽如此,我对您的jquery并没有什么感觉,但似乎Swashback库中存在潜在的兼容性问题。谷歌的快速搜索也显示了IE11中的很多问题。看看它是否与你所经历的相关。这是封闭的,所以可能不太正确,但这是我最初的怀疑


希望这有帮助

因此,问题最终出现在IE 11中不运行的“=>”箭头函数中

我还有另外一个用Jquery编写的脚本,它们甚至在IE中也运行得很好,所以它一定和这个有什么关系。同样在IE中的开发工具中,我没有得到任何错误,元素只是不渲染。