[英]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.