最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue+iview+webpack ie瀏覽器兼容簡(jiǎn)單處理

 更新時(shí)間:2019年09月20日 14:25:54   作者:一棵會(huì)開花的樹  
這篇文章主要介紹了Vue+iview+webpack ie瀏覽器兼容簡(jiǎn)單處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境介紹:

  • vue: ^2.5.2
  • iview: ^3.1.0
  • Webpack: ^3.8.1

前情提要:

  • ie 瀏覽器不支持 ES6 Promise 的語法。
  • ie8 及以下對(duì) html5 標(biāo)簽不兼容(可以通過引入html5shiv包解決,本文不處理IE11的更低版本,故不提及此法)。
  • ie9 以下 對(duì) CSS3 的不兼容,各種不兼容的細(xì)節(jié)比較多,這里不說明。
  • ie10 及以下瀏覽器中不支持 dataset 方法(經(jīng)學(xué)習(xí)實(shí)踐發(fā)現(xiàn)ie11也是不支持的),而我在項(xiàng)目中使用了 iview, iview 的一些組件用到了這個(gè)方法。
  • ie 瀏覽器是非 webkit 內(nèi)核,不支持 display: -webkit-box; 和相關(guān)樣式;
  • Polyfill 是 shim 的一種,但他的 API 是遵循標(biāo)準(zhǔn)的。polyfill 的做法通常是:先檢查瀏覽器是否支持某個(gè)標(biāo)準(zhǔn) API,如果不支持,就使用舊的技術(shù)對(duì)瀏覽器做兼容處理,這樣就可以在舊的瀏覽器上使用新的標(biāo)準(zhǔn) API。比如,舊瀏覽器不支持 ES6 的 Array.prototype.find 方法,我們想要在項(xiàng)目中使用 Array.prototype.find,只要 polyfill 就行了,而不是封裝一個(gè)新的方法。

處理過程

1、安裝 polyfill 組件,使瀏覽器兼容 es6 的寫法

在終端輸入命令

npm install --save babel-polyfill

main.js 頭部引入 babel-polyfill, 注意這個(gè)放最前面:

import 'babel-polyfill'

或者在項(xiàng)目的 webpack.base.conf.js 中配置:

entry: {

​  app:['babel-polyfill','./src/main.js']

 },

另外,引入的一些模塊需要單獨(dú)引入到 babel 的配置中,不然不起作用(具體為啥我沒深究),網(wǎng)上查到用到 echarts-v3 的需要配置,經(jīng)測(cè)試我用到 iview 也是要配置的, 下面代碼的 include 中就是我配置的項(xiàng),這個(gè)主要是按需配置的,具體看項(xiàng)目里的情況:

module: {

​  rules: [

​   ...(config.dev.useEslint ? [createLintingRule()] : []),

​   {

​    test: /\.vue$/,

​    loader: 'vue-loader',

​    options: vueLoaderConfig

​   },

​   {

​    test: /\.js$/,

​    loader: 'babel-loader',

​    include: [

​     resolve('src'), 

​     resolve('test'), 

​     resolve('static'),

​     resolve('node_modules/webpack-dev-server/client'),

​     // resolve('node_modules/vue-echarts'),

​     resolve('node_modules/iview/src'),

​     // resolve('node_modules/resize-detector')

​    ]
​   },
}

2、兼容 dataset

我在引入了 babel-polyfill 后還是報(bào)錯(cuò),信息如下圖:

搜了半天關(guān)于 SCRIPT1003 和 SCRIPT5007 的錯(cuò)誤, 發(fā)現(xiàn)沒有直接的解決辦法,就主要是說缺少項(xiàng)目中包含的某個(gè)模塊的某種方法的引入。于是我就從我主要用到的 iview 入手去查找,發(fā)現(xiàn)了有相關(guān)的內(nèi)容。有說到 iview 兼容 IE 需要寫一個(gè) dataset 方法才能正常加載。

dataset方法只要能夠加載全局使用即可。我是寫了一個(gè)腳本嵌入 index.html 文件中。代碼如下:

<script>
 // dataset 方法兼容 IE 瀏覽器。ie10及以下不支持dataset
 if (window.HTMLElement) {
  if (Object.getOwnPropertyNames(HTMLElement.prototype).indexOf('dataset') === -1) {
   Object.defineProperty(HTMLElement.prototype, 'dataset', {
    get: function () {
     var attributes = this.attributes // 獲取節(jié)點(diǎn)的所有屬性
     var name = []
     var value = [] // 定義兩個(gè)數(shù)組保存屬性名和屬性值
     var obj = {} // 定義一個(gè)空對(duì)象
     for (var i = 0; i < attributes.length; i++) { // 遍歷節(jié)點(diǎn)的所有屬性
      if (attributes[i].nodeName.slice(0, 5) === 'data-') { // 如果屬性名的前面5個(gè)字符符合"data-"
       // 取出屬性名的"data-"的后面的字符串放入name數(shù)組中
       name.push(attributes[i].nodeName.slice(5));
       // 取出對(duì)應(yīng)的屬性值放入value數(shù)組中
       value.push(attributes[i].nodeValue);
      }
     }
     for (var j = 0; j < name.length; j++) { // 遍歷name和value數(shù)組
      obj[name[j]] = value[j]; // 將屬性名和屬性值保存到obj中
     }
     return obj // 返回對(duì)象
    }
   })
  }
 }
</script>

搞到這里,我的項(xiàng)目就已經(jīng)可以在 IE 里出現(xiàn)了,也不打算繼續(xù)支持更低的IE版本,坑太深,果斷棄。但是樣式還是有問題。這個(gè)搞起來也是很麻煩。點(diǎn)了點(diǎn)項(xiàng)目里出現(xiàn)的樣式問題,未發(fā)現(xiàn)很復(fù)雜的,主要一個(gè)就是 flex 布局出現(xiàn)混亂,經(jīng)過調(diào)整已經(jīng)好了。還有就是 -webkit-box 不支持,之前顯示數(shù)據(jù)使用以下方式解決多行溢出省略號(hào)顯示問題失效了:
overflow: hidden;

display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */

-webkit-box-orient: vertical;

-webkit-line-clamp: 2;

word-break: break-all;

糾結(jié)了一下,不想用js 的方式寫,也不想用 偽標(biāo)簽(高度不好定,易出現(xiàn)文字被覆蓋的情況),也不想特意讓后臺(tái)修改返回的數(shù)據(jù),所以決定用比較low的相對(duì)保險(xiǎn)的截取字符的方式展示。

總結(jié)

第一次處理這個(gè)問題,很多東西不明白,描述也不大清楚,處理的不全面,還望多交流指正!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決antd Form 表單校驗(yàn)方法無響應(yīng)的問題

    解決antd Form 表單校驗(yàn)方法無響應(yīng)的問題

    這篇文章主要介紹了解決antd Form 表單校驗(yàn)方法無響應(yīng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Vuejs從數(shù)組中刪除元素的示例代碼

    Vuejs從數(shù)組中刪除元素的示例代碼

    這篇文章主要介紹了Vuejs從數(shù)組中刪除元素的示例代碼,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Vuex?localStorage的具體使用

    Vuex?localStorage的具體使用

    本文主要介紹了Vuex?localStorage的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • vue+webrtc(騰訊云) 實(shí)現(xiàn)直播功能的實(shí)踐

    vue+webrtc(騰訊云) 實(shí)現(xiàn)直播功能的實(shí)踐

    本文主要介紹了vue+webrtc(騰訊云) 實(shí)現(xiàn)直播功能的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue.js路由的基本使用方式

    vue.js路由的基本使用方式

    VueRouter是Vue.js的官方路由插件,用于實(shí)現(xiàn)單頁應(yīng)用的頁面切換和導(dǎo)航,通過安裝、配置路由規(guī)則、定義路由組件和使用&amp;lt;router-link&gt;、&amp;lt;router-view&gt;標(biāo)簽
    2025-01-01
  • Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南

    Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南

    vue中提供了一種混合機(jī)制--mixins,用來更高效的實(shí)現(xiàn)組件內(nèi)容的復(fù)用,下面這篇文章主要給大家介紹了關(guān)于Vue中mixins的使用方法以及實(shí)際項(xiàng)目應(yīng)用指南,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Vuejs使用addEventListener的事件如何觸發(fā)執(zhí)行函數(shù)的this

    Vuejs使用addEventListener的事件如何觸發(fā)執(zhí)行函數(shù)的this

    這篇文章主要介紹了Vuejs使用addEventListener的事件觸發(fā)執(zhí)行函數(shù)的this方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • VUE正則表達(dá)式用法全集整理(推薦!)

    VUE正則表達(dá)式用法全集整理(推薦!)

    正則表達(dá)式是由一些特定的字符組成,代表一個(gè)規(guī)則,可以用來檢驗(yàn)數(shù)據(jù)格式是否合法,也可以在一段文本中查找滿足要求的內(nèi)容,這篇文章主要給大家介紹了關(guān)于VUE正則表達(dá)式用法的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • element滾動(dòng)條組件el-scrollbar的使用詳解

    element滾動(dòng)條組件el-scrollbar的使用詳解

    本文主要介紹了element滾動(dòng)條組件el-scrollbar的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • vue鼠標(biāo)懸停事件實(shí)例詳解

    vue鼠標(biāo)懸停事件實(shí)例詳解

    這篇文章主要介紹了vue鼠標(biāo)懸停事件,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

巴楚县| 汉川市| 阳东县| 舒城县| 囊谦县| 平安县| 通化县| 荔浦县| 天全县| 嘉鱼县| 巩义市| 长沙县| 珲春市| 长沙市| 灌阳县| 天津市| 治多县| 罗源县| 故城县| 措美县| 宁海县| 北辰区| 栖霞市| 西乌珠穆沁旗| 荣昌县| 通河县| 石渠县| 房产| 虞城县| 渭南市| 开封县| 北碚区| 河北区| 左权县| 东源县| 八宿县| 甘谷县| 五峰| 江陵县| 崇仁县| 芒康县|