Vue项目兼容IE一些处理方法

前言

这都2022年了,还要兼容ie,就离谱。。。
项目使用的依赖的兼容性问题,由于IE在市场的占有率不到1%,很多插件已经不再考虑兼容IE浏览器了。
还有一个是如何要兼容更低版本的浏览器(IE8-),那还得下载es3ify-webpack-plugin插件把es5转化成es3
现在项目的css布局基本都是使用flex布局或者grid布局了,很多在ie上很出现布局错乱甚至不显示的问题。
下面兼容的问题只针对功能性上的,css布局问题如果要兼容ie要多写好多代码,还影响后续开发的时间成本,所以我是不处理了。
处理的项目是Vue2.6版本

依赖中有es6语法

一般vue项目的babel是不会主动去识别node_modules文件的,需要手动去识别,但是识别整个node_modules文件夹又太慢了,可以在vue.config.js增加transpileDependencies配置项来指定识别相关依赖:

module.exports = {
	transpileDependencies: ['依赖名']
}

我看网上有些说transpileDependencies无效的问题,有说是没用npm下载依赖导致的,有的说可以用正则来匹配依赖名。

IE控制台报错:unhandled Pormise rejection Error: 拒绝访问

在这里插入图片描述

这个问题是因为Promise的异常捕获冒泡导致的,当Promise的状态变为rejection时没有正确处理,让其一直冒泡(propagation),直至被进程捕获。这个Promise就被称为unhandled promise rejection。在promise加上catch就行了

下载功能在IE下无效

这个原因是下载功能是通过获取链接然后通过dom.click()方法进行下载的,这在ie是不行的,没有通过鼠标而是通过js来实现单击效果ie认为是漏洞。判断下是不是IE浏览器,然后特殊处理:

let blob = 'xxx' // 图片blob对象
if (!!window.ActiveXObject || 'ActiveXObject' in window) {
 	 window.navigator.msSaveBlob(blob, imgText + '.png')
} else {
	let a = document.createElement('a')
	a.setAttribute('href', URL.createObjectURL(blob))
	a.clock()
}

那如果要模拟点击时间呢:

if (typeof this.onclick == 'function') {
	if (this.onclick({type: 'click'}) && this.href) {
		window.open(this.href, this.target? this.target : '_self');
	} else if (this.href) {
		window.open(this.href, this.target? this.target : '_self');
	}
}
路由不能跳转:SCRIPT1006: Expected ‘)’

在这里插入图片描述
定位到报错代码位置:
在这里插入图片描述
发现是element_ui依赖的问题,参考上面的依赖中有es6语法问题。

babel优化

使用env preset
babel-preset-env允许你指定一个代码执行环境,并且只编译该环境缺少的特性。而非babel-pre-env预设存在的问题在于它们往往做得太多。例如,大多数现代浏览器都支持ES6生成器。如果使用babel-preset-es2015这些预设,ES6生成器函数将始终被转换为复杂的ES5代码,完全没有必要。
.babelrc 配置文件如下:

"presets": [
    [
      "env",
      {
        "targets": {
          "browsers": ["last 2 versions", "ie >= 8"]
        }
      }
    ]
  ]

参考文档:
Babel中文参考手册

### 安装和配置 Isaac Sim 于云服务器 对于希望在云环境中利用Isaac Sim进行开发或模拟工作的用户而言,了解并遵循特定的安装与配置流程至关重要。由于上述信息提及了针对工作站的具体步骤并不完全适用于云端部署[^1],因此建议关注专门面向云计算平台的指南。 #### 准备工作 为了确保能够在云平台上顺利运行Isaac Sim,需先确认所选云实例满足最低硬件需求,这通常涉及到CPU核心数、内存大小以及GPU型号等方面的要求[^3]。此外,在启动虚拟机之前,请务必检查该服务提供商是否支持必要的驱动程序安装及其兼容性情况。 #### 创建云实例 当选择了合适的云服务商之后,创建一个新的Linux操作系统镜像作为基础环境,并确保已开启SSH访问权限以便后续操作。值得注意的是,部分高级特性可能依赖于特定版本的操作系统内核或其他软件包的支持;此时应参照官方文档来调整初始化参数设置。 #### 登录 Nvidia 账号 通过浏览器打开[NVIDIA官网](https://www.nvidia.com/),输入正确的用户名密码完成身份验证过程后,可以找到通往Omniverse门户入口链接[^2]。在此过程中,默认选项往往已经过优化处理,能够简化初次接触者的入门难度。 #### 下载与安装 一旦成功登陆至目标界面,则可依照提示下载对应平台架构下的最新稳定版Isaac Sim压缩文件。解压完成后执行其中包含的setup脚本以自动完成剩余环节: ```bash tar -xf isaac-sim.tar.gz cd isaac-sim/ ./setup.sh ``` #### 启动应用 最后一步便是调用launch命令行工具指定场景加载路径从而正式开启交互体验模式: ```bash source ./enable isaac-sim.sh --headless --no-window --play <path_to_your_scene> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值