Javascript 用于swagger的Js/Jquery注入脚本未在IE11上运行
我在IE11上没有运行这段代码时遇到了问题,我无法找出问题所在。我对java scrip和Jquery都是新手,这是我在网络中大摇大摆的一个扩展脚本。Web Api 基本功能:它使用API组/版本添加了2个新选项。一切都运行良好的铬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
(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中的开发工具中,我没有得到任何错误,元素只是不渲染。