如何解决用{}中断IE 11
在我的网站上使用slideToggle作为变量时出现问题。我正在使用domSlider。当我尝试以下操作时,我遇到了无法理解的问题。
如果将slideToggle定义为:
var {slideToggle} = window.domSlider;
我在IE 11中获得了SCRIPT1010: Expected identifier
,但可以在Chrome和现代浏览器中使用。
如果我将其定义为:
var slideToggle = window.domSlider;
我在Chrome和其他现代浏览器中得到Uncaught TypeError: slideToggle is not a function
。但是IE 11中没有错误。
我不知道是什么原因造成的,以及如何从这里继续前进。
解决方法
IE11不支持解构分配:Browser_compatibility
var { slideToggle } = window.domSlider;
将是:
var slideToggle = window.domSlider.slideToggle;
要在IE11中工作,或者您可以直接使用window.domSlider.slideToggle
var { item } = func()
构造称为 destructuring 。较旧的Redmond中学科学计划(IE11)不支持该计划;这是他们停止在IE上使用后产生的javascript版本。
如果您要定位IE,请滚动到MDN页面底部,描述该功能。对于您的示例,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#会说明哪些浏览器支持该功能。
还有一个名为CanIUse.com的网站,其中逐个功能提供有关浏览器支持的信息。
有一个名为Babel的编译器(将新的javascript变成旧的编译器)。你可以试试看。但是,对于SO的答案,解释如何在您的项目中进行装配实在太多了。
欢迎来到为不良旧版浏览器开发代码的美好世界。微软有充分的理由放弃自己的浏览器开发并采用Chromium。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。