2017-05-03 7 views
3

私はChildNode.remove()を使用しています。私はMozillaによって記述されています.IEにはpolyfillが必要です。ChildNode.remove()babel-polyfillを使用したpolyfill

"babel-polyfill": "^6.13.0", 
"webpack": "^2.4.1", 

webpack.config.babel.js:私は、構成されたバベル-ポリフィルとのWebPACKを使用しています

entry: ['babel-polyfill', join(__dirname, path, "index.web.js") ], 

私の前提だったバベル-ポリフィルが私を提供することを、すべての一般的な私が必要としたpolyfill - それはそうではありません。Internet Explorer 11にエラーがあります。私は逃した別の設定がありますか?

babel-polyfillパッケージあなた

答えて

5

ありがとうちょうどバベルはそれで何もしませんので、Childnode.remove()はDOMの一部であり、私の知る限りではjavascriptのオブジェクトをpolyfills。 Mozilla documentationで提案されている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]); 
+0

CharacterDataとDocumentTypeの両方に互換性の問題があるため、余分なポリフィルを慎重に使用してください – Fiddles

1

、あなたはPolyfill.ioで見ることができます。 babel-polyfill同様

(例えばChildNode.remove())、Polyfill.io(例えばArray.from)コアJavaScriptの機能を提供しますが、バベル-ポリフィルとは異なり、それはまた、DOMの動作をpolyfills。デフォルトでは、ブラウザのユーザーエージェント文字列を使用して、必要なポリフィルを判別し、最新のブラウザでは必要のないポリフィルをダウンロードする必要がありません。

Polyfill.ioが提供していない主なものは、babel-polyfillであり、ジェネレータ機能(regenerator-runtimeによって提供される)をサポートしているので、完全な機能のためには、babel-polyfill

関連する問題