簡體   English   中英

ChildNode.remove()polyfill與babel-polyfill

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM