webpack中object-defineproperty-ie8的使用,处理ie8兼容性

1,662 阅读1分钟
  • 按理说webpack5也可以使用的,大家可以试试

不用使用:

npm i object-defineproperty-ie8

直接将这段代码粘贴到你html模版里面

   var origDefineProperty = Object.defineProperty;
    var arePropertyDescriptorsSupported = function () {
        var obj = {};
        try {
            origDefineProperty(obj, "x", {enumerable: false, value: obj});
            for (var _ in obj) {
                return false;
            }
            return obj.x === obj;![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5c7f3ae78eb4f75a16529ee8ee34768~tplv-k3u1fbpfcp-watermark.image)
        } catch (e) {
            /* this is IE 8. */
            return false;
        }
    };
    var supportsDescriptors =
        origDefineProperty && arePropertyDescriptorsSupported();

    if (!supportsDescriptors) {
        Object.defineProperty = function (a, b, c) {
            //IE8支持修改元素节点的属性
            if (origDefineProperty && a.nodeType == 1) {
                return origDefineProperty(a, b, c);
            } else {
                a[b] = c.value || (c.get && c.get());
            }
        };
    }
  • 截图