vue+iview 호환 IE9 이상의 해결 방법

1. 새로운 ES6 구문 지원, babel-polyfill 설치
IE 는 es6 구문을 지원하지 않습니다.
  • 설치
  • npm install --save babel-polyfill
    #   (  )
    yarn add babel-polyfill
  • 웹팩 수정.base.conf.js
  • //     
    entry: {
        app: './src/main.js'
    },
    //    
    entry: {
        app: ['babel-polyfill', './src/main.js']
    },
  • main.js에 추가
  • import 'babel-polyfill'

    2. IE10 이하, iview의 날짜 구성 요소를 선택할 수 없습니다.
    데이터set을 호환합니다. ie10 및 이하는 데이터set을 지원하지 않습니다. iview의transfer-dom입니다.js가 이 속성을 사용했습니다
    방법1:element-dataset 설치
    yarn add element-dataset
  • main.js에 추가
  • import ElementDataset from 'element-dataset'
    ElementDataset()

    방법 2
  • main.js에 추가
  • if (window.HTMLElement) {
      if (Object.getOwnPropertyNames(HTMLElement.prototype).indexOf('dataset') === -1) {
        Object.defineProperty(HTMLElement.prototype, 'dataset', {
          get: function () {
            var attributes = this.attributes //          
            var name = []
            var value = [] //                
            var obj = {} //        
            for (var i = 0; i < attributes.length; i++) { //          
              if (attributes[i].nodeName.slice(0, 5) === 'data-') { //         5     "data-"
                //       "data-"         name   
                name.push(attributes[i].nodeName.slice(5))
                //           value   
                value.push(attributes[i].nodeValue)
              }
            }
            for (var j = 0; j < name.length; j++) { //   name value  
              obj[name[j]] = value[j] //            obj 
            }
            return obj //     
          }
        })
      }
    }

    3. promise 지원
    IE 는 promise 를 지원하지 않습니다.
  • es6-promise
  • 설치
    yarn add es6-promise
  • main.js에 추가
  • import promise from 'es6-promise'
    promise.polyfill()

    4. ie9은 placeholder 속성을 지원하지 않습니다.
  • ie-placeholder 설치
  • yarn add ie-placeholder
  • main.js에 추가
  • import 'ie-placeholder'

    전재: 아빠, vue+iview 겸용 IE9 이상의 해결 방법

    좋은 웹페이지 즐겨찾기