[英]ChildNode.remove() polyfill with babel-polyfill
我正在使用ChildNode.remove() ,我在Mozilla中描述我需要一个用于IE的polyfill 。 我正在使用配置了babel-polyfill的webpack:
"babel-polyfill": "^6.13.0",
"webpack": "^2.4.1",
webpack.config.babel.js:
entry: ['babel-polyfill', join(__dirname, path, "index.web.js") ],
我的假设是, babel-polyfill会为我提供我需要的所有常见的polyfill - 但事实并非如此,我在Internet Explorer 11中有错误。 我错过了另一个配置吗?
谢谢
据我所知, babel-polyfill
包只是polyfills javascript对象, Childnode.remove()
是DOM的一部分,因此babel不会对它做任何事情。 我建议你只使用Mozilla文档中建议的polyfill。
// from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('remove')) {
return;
}
Object.defineProperty(item, 'remove', {
configurable: true,
enumerable: true,
writable: true,
value: function remove() {
this.parentNode.removeChild(this);
}
});
});
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
作为babel-polyfill的替代(或补充),您可以查看Polyfill.io 。
与babel-polyfill
Array.from
一样,Polyfill.io将提供核心Javascript功能(例如Array.from
),但与babel- Array.from
不同,它还可以ChildNode.remove()
DOM行为(例如ChildNode.remove()
)。 默认情况下,它使用浏览器用户代理字符串来确定哪些polyfill是必需的,从而防止现代浏览器需要下载他们不需要的polyfill。
这个babel-polyfill
没有提供的主要功能是支持生成器函数(由regenerator-runtime提供),因此对于完整功能,你需要包含它而不是整个babel-polyfill
。
我创建了一个小的polyfill npm。 应该让你的生活更轻松。 https://www.npmjs.com/package/element-remove
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.