有几个有用的JavaScripts和.htc行为可以修补Internet Explorer渲染引擎中的漏洞和错误功能.似乎他们中的大多数都有一些重叠或不完整的功能支持,很难决定使用什么:
如果您还有其他内容,请添加到此列表中:这是一个社区维基.
哪些是您首选的脚本?有什么好处和限制?
更新:这些脚本现在通常称为"Polyfills"
我们中的许多人都对polyfills感到兴奋,以减少IE的阻力.但我的牛肉与WebKit有关.怎么了,WebKit?你对其他一切都非常棒; 为什么你必须去,而不是实现calc(),嗯?......但如果有一个填充物,这不是什么大问题.
在那儿?
谷歌在这一点上非常简洁.所以:0 Hivemind,这样的事情存在吗?
我想要一个CSS3动画工作; 在所有主流浏览器中工作正常,但IE9和更旧(在那里并不奇怪).所以没有进一步的麻烦,这里是CSS:
#grosse_photo {
/*...*/
-webkit-animation: photoFade 12s infinite;
-moz-animation:photoFade 12s infinite;
-ms-animation: photoFade 12s infinite;
animation-iteration-count:1;
-moz-animation-iteration-count:1;
-webkit-animation-iteration-count:1;
-o-animation-iteration-count:1;
}
@-webkit-keyframes photoFade {
0% { opacity: 0.0; }
100% { opacity: 1.0; }
}
@-moz-keyframes photoFade {
0% { opacity: 0.0; }
100% { opacity: 1.0; }
}
@-o-keyframes photoFade {
0% { opacity: 0.0; }
100% { opacity: 1.0; }
}
@keyframes photoFadee {
0% { opacity: 0.0; }
100% { opacity: 1.0; }
}
Run Code Online (Sandbox Code Playgroud)
我使用-ms前缀认为它会反应如此 …
我正在使用webpack,并分别根据whatwg-fetch和es6-promise软件包跟踪示例到polyfill fetch和旧版浏览器的Promise.
new webpack.ProvidePlugin({
'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch',
'Promise': 'exports?global.Promise!es6-promise'
}),
Run Code Online (Sandbox Code Playgroud)
这一切都有意义,但现在我需要polyfill Array.prototype.find(),但无法找到如何使用webpack的ProvidePlugin功能实现这一点.使find变得不同的是它本质上是一个Array原型的方法,我没有找到任何使用ProvidePlugin指定这些东西的例子.有没有人使用webpack来填充像这样的ES6阵列函数?有关如何实现这一目标的任何指示?我是否采用了错误/过时的方式或是否有更好的方法来实现我的需求?
到目前为止,我已经尝试使用paulmillr的polyfill 包来试验语法,但是使用ProvidePlugin并没有成功使用它.
对此进行更多研究使我得到了babel polyfill.而这些资源:
我在这里也发现了babel-polyfill中缺少window.fetch polyfill,这解释了为什么它可能经常是由ProvidePlugin处理的特殊情况.我也在拼凑说,ProvidePlugin更像是一种便利工具而不是应用polyfill的通用工具.直接导入babel-polyfill并删除Promise和其他ES6 pollyfill除了fetch之外,在我的实验中到目前为止看起来有点大有希望.
我正在使用babel-standalone,我正在做与https://github.com/Daniel15/babel-standalone/blob/master/examples/scriptTag-src.htm完全相同的事情,但我收到警告
您正在使用浏览器中的Babel变换器.请务必预编译脚本以进行生产 - https://babeljs.io/docs/setup/
我不知道该怎么办.它不应该只是将我的所有ES6代码翻译成旧浏览器支持的代码吗?
我在旧版Android中加载包含axios的Vue组件时遇到问题。经过一些研究,它指出浏览器不支持Promises,因此不支持polyfill。
我已经安装并导入了polyfill,但是仍然有问题。
import Promise from 'es6-promise';
Run Code Online (Sandbox Code Playgroud)
以上正确吗?还是还有其他问题?
我在我的Polymer 2项目中使用ES6,Promises和fetch.因为我需要支持至少IE11,我正在使用Babel(通过聚合物构建)和使用polyfills.io来进行polyfill fetch和Promise支持.我的polyfills.io导入发生在任何其他导入之前,如下所示:
<script src="https://cdn.polyfill.io/v2/polyfill.js?features=default,fetch&flags=gated"></script>
当我加载页面时,IE11控制台中出现此错误:
SCRIPT438: Object doesn't support property or method 'catch'
查看我的代码,我唯一一次使用catch是在Promises中.例如:
loadSchemas() {
return APP.client
.search("+type:Schema")
.then(result => {
// Do things with results.
})
.catch(error => {
// Deal with errors.
});
}
Run Code Online (Sandbox Code Playgroud)
如果我删除了catch,页面加载没有错误,但显然它没有运行我的错误处理代码.
为什么这不按预期工作?它在Firefox,Chrome和Safari中运行良好.我尝试了许多不同的承诺polyfills并仍然得到相同的错误,所以我不认为这是一个polyfill bug.
javascript polyfills internet-explorer-11 polymer es6-promise
我正在开发角度4应用程序,并且它在除IE11和边缘之外的所有浏览器上工作正常,我检查解决方案并添加了es15支持并添加了polyfill以支持IE但它仍然无法正常工作.
问题:第一次在IE上加载并在几次刷新后加载但未完全加载.
我已经完成了这里提到的polyfill修复
任何帮助都很明显
谢谢
我的理解是Babel Polyfill模拟完整的ES6环境,而babel-preset-env根据您需要支持的环境(浏览器)自动将ES6(及更高版本)编译为ES5.
我有几个问题:
这两个设计是为了彼此并排使用,还是相互替代?
如果它们被设计成彼此的替代品,是否有理由选择一个而不是另一个?还有一个表现更好吗?
当使用这些工具中的任何一个时,是否仍然需要使用额外的Babel插件,或者其中一个包含我需要编写符合规范的现代JavaScript的每个插件(仅限第4阶段提案,我认为需要插件才能使用第3阶段及以下?).
javascript polyfills babeljs babel-polyfill babel-preset-env
一直在网上搜索一段时间,没有解决方案.
我试图使用光滑的旋转木马与新的图片标签,在每个浏览器,但IE 11工作得很好.有没有人知道IE 11的解决方法/ polyfill?