iview-admin兼容ie11浏览器,vue+iview兼容ie11

iview-admin兼容ie11浏览器,vue+iview兼容ie11

写这篇文章呢是因为,在我使用iview-admin开发完管理系统整套功能后,高大的金主爸爸要求,必须兼容ie浏览器,善良一点只要兼容ie11就好。没办法了,只能兼容,在兼容的过程中,作者呢,在心里默默“吐槽”了几遍!!!
iview-admin是web端管理系统的开源框架,核心是基于vue+iview。

1、用ie浏览器打开页面一片空白

(1) 安装 babel-polyfill,让ie兼容es6
    npm install babel-polyfill

(作者刚开始的时候使用了 npm install babel-polyfill --save-dev,结果并不能在ie上显示,后面去掉了–save-dev就可以了,就查了一下,npm的直接install和加-save、–save-dev的区别,有兴趣可自行了解一波)

(2) 在 main.js文件第一行引入babel-polyfill
	import 'babel-polyfill'

在这里插入图片描述
######(3) 在vue.config.js中配置configureWebpack信息,添加如下代码:

configureWebpack: {
    module: {
      rules: [
        {
          test: /\.m?js$/,
          include: [
            resolve('src'),
            resolve('test'),
            resolve('node_modules/webpack-dev-server/client'),
            resolve('node_modules/iview/src'),
            resolve('node_modules/tree-table-vue/lib'),
            resolve('node_modules/v-org-tree/dist'),
          ],
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env']
            }
          }
        }
      ]
    }
  }	

在这里插入图片描述
按以上步骤,配置完成,即可在ie11浏览器显示了。

2、全屏显示退出,在ie浏览器没反应,或者进入全屏后无法全屏退出

(1) 修改fullscreen.vue文件,即可进入全屏模式
  将mounted中的msfullscreenchange改成MSFullscreenChange

在这里插入图片描述

(2)进入到你写的全屏页面,将mounted中加上监听ie的事件MSFullscreenChange
  document.addEventListener('MSFullscreenChange', () => {
    this.value = !this.value
  })
  
  ** 一定要注意大小写,作者之前用msFullscreenChange,MSfullscreenChange各种试过,
  都无法监测到退出全屏操作,最后发现MSFullscreenChange就可以监听到。

在这里插入图片描述

3、ie浏览器,发送请求到服务端,操作成功,但是页面数据没变化?

ie浏览器,向服务端发送请求,url路径若一致,浏览器会缓存第一次的内容,导致即使重新请求,页面数据也不会发送变化(刷新)。
解决方式:在每个请求后面带上当前时间的时间戳,这样就能保证,所有的请求url不同,这需要后端配合修改接口哦!
作者是直接在axios请求拦截中,在发起请求的时候,拦截给他带上时间戳,这样就不用每个url都去改咯

     if(config.method === 'get') {
        if(config.url.indexOf('?')>-1){
          let getTimestamp = new Date().getTime()
          config.url = url + '?timestamp=' + getTimestamp
        }else {
          let getTimestamp = new Date().getTime()
          config.url = url + '?timestamp=' + getTimestamp
        }
      }

在这里插入图片描述

4、js兼容问题:new Date(时间),时间格式有要求,导致获取的时间戳有问题

.replace(/-/g,'/')

ie中使用new Date(2019-09-26).getTime() 获取时间戳会出现问题,因为无法识别‘-’,但是可以识别‘/’,所以可以用replace全局替换掉特殊符号。

   let time = '2019-9-26'
   let T = time.replace(/-/g,'/')
   let result = new Date(T).getTime()

5、checkbox样式在ie浏览器中样式问题

在这里插入图片描述
在全局样式文件中加入:

.ivu-checkbox-checked .ivu-checkbox-inner:after {
  display:block;
  -ms-transform:rotate(45deg)scale(1);/* IE 9 */
  -moz-transform:rotate(45deg)scale(1);/* Firefox */
  -webkit-transform:rotate(45deg)scale(1);/* Safari 和 Chrome */
}
.ivu-checkbox-indeterminate .ivu-checkbox-inner:after {
  display:block;
}

在这里插入图片描述

6、css3样式不兼容

css3样式不兼容,也会导致页面出现空白,比如颜色渐变等等,这个自行百度参考有哪些css3属性,ie不兼容。

注:此方法仅兼容到ie11。。。。ie9不兼容flex,iview的布局组件layout就是跟flex挂钩的,所以我无解了!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值