React、Vue在IE的兼容问题(react 兼容ie)

Vue在IE10中无法获取父元素

原始

let parent = this.$el.parentElement

解决

这玩意还能咋解决 用原生呗 class、id都行

let parent = document.getElementsByClassName(\’top-chart\’)[0]

router-link在IE中没有作用

原始

<router-link to=\”a\” tag=\”div\” />

解决

  • 方案1
  • 由于URL的hashChange浏览器没有响应 故我们加个判断

if ( \’-ms-scroll-limit\’ in document.documentElement.style && \’-ms-ime-align\’ in document.documentElement.style) { // detect it\’s IE11 window.addEventListener(\”hashchange\”, function(event) { var currentPath = window.location.hash.slice(1); if (store.state.route.path !== currentPath) { router.push(currentPath) } }, false)}复制代码

如果还没有解决 换到方案二

  • 方案2
  • 如果浏览器直接没有触发到hashChange 那么我们手动调用history的API

<div @click=\”handleLink\” />handleLink () { this.$router.push({name:\’a\’})}复制代码

Excel表单导出异常

原始

原先通过axios的拦截器来获取响应内容的格式 然后进行下载 但在IE表现不一致 由于IE浏览器res.request.responseURL属性不存在 导致出错

const downloadUrl = url => { let iframe = document.createElement(\’iframe\’); iframe.style.display = \’none\’; iframe.src = url; iframe.onload = function () { document.body.removeChild(iframe); }; document.body.appendChild(iframe);};// 拦截二进制响应流if (res.headers && (res.headers[\’content-type\’] === \’application/vnd.ms-excel;charset=UTF-8\’ || res.headers[\’content-type\’] === \’application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\’ || res.headers[\’content-type\’] === \’application/octet-stream;charset=UTF-8\’)) {downloadUrl(res.request.responseURL);return}复制代码

解决

丢弃已有的轮子 闭门造车写个原生的Ajax

utils.exportFiles = (type = \’GET\’, url = null) => { var xhr = null if (window.XMLHttpRequest) { // Mozilla 浏览器 xhr = new XMLHttpRequest() } else { if (window.ActiveXObject) { try { xhr = new ActiveXObject(\’Microsoft.XMLHTTP\’) } catch (e) { try { xhr = new ActiveXObject(\’Msxml2.XMLHTTP\’) } catch (e) { } } } } xhr.open(type, url, true) xhr.responseType = \’blob\’ if (type === \’POST\’) { xhr.setRequestHeader(\’Content-type\’, \’application/json\’) } xhr.onload = function (res) { var contentDisposition = xhr.getResponseHeader(\’content-disposition\’) var contentType = xhr.getResponseHeader(\’content-type\’) var filename = contentDisposition.split(\’;\’)[2] // eslint-disable-next-line no-eval eval(filename) filename = decodeURI(filename) if (this.status === 201) { var blob = this.response if (typeof window.navigator.msSaveBlob !== \’undefined\’) { // IE 浏览器进行下载 window.navigator.msSaveBlob(blob, filename) } else { // 非浏览器进行下载 var downloadUrl = document.createElement(\’a\’) downloadUrl.download = filename downloadUrl.style.display = \’none\’ downloadUrl.href = URL.createObjectURL(blob) document.body.appendChild(downloadUrl) downloadUrl.click() URL.revokeObjectURL(downloadUrl.href) document.body.removeChild(downloadUrl) } } else { console.log(\’导出错误\’) } } xhr.send()}复制代码

React中remove()不兼容

解决

找到该节点的父节点 使用removeChild()方法删除

node.parentNode.removeChild(node)

flex在IE中子元素宽度无效

原始

问题出现在想做一个横向滚动 Apple官网有类似需求

<div class=\”node-list\”> <div class=\”node-item\”> </div></div>复制代码

当node-item的宽度设定 且个数超过node-list的可容纳个数时 子元素的宽度失效 所有的子元素都将显示出来

解决

给父元素 即node-list动态设置宽度

<div class=\”node-list\” v-if=\”nodeList\”> <div class=\”node-list\” v-if=\”nodeList\” :style=\”{width:`${nodeWidth}px`}\”> </div></div>复制代码

IE隐藏滚动条

解决

overflow: scroll; -ms-scroll-chaining: chained; -ms-overflow-style: none; -ms-content-zooming: zoom; -ms-scroll-rails: none; -ms-content-zoom-limit-min: 100%; -ms-content-zoom-limit-max: 500%; -ms-scroll-snap-type: proximity; -ms-scroll-snap-points-x: snapList(100%, 200%, 300%, 400%, 500%); -ms-overflow-style: none;复制代码

总结

大概就是这么多 后续如果有遇到新的问题再加进去 也欢迎大家提出一点不同的解决和新的问题 造福切图仔

作者:虚竹子

链接:https://juejin.im/post/5d6742f86fb9a06b2116fb34

来源:掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

React、Vue在IE的兼容问题(react 兼容ie)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年12月28日 上午10:32
下一篇 2023年12月28日 上午10:43

相关推荐

  • 学生管理系统的项目介绍

    学生管理系统的项目介绍 随着现代社会的不断发展,学校管理也在不断地更新和改进。学生管理系统是其中的一个重要组成部分,它可以帮助学校更好地管理学生信息、课程安排、成绩统计等工作。本文…

    科研百科 2025年1月10日
    0
  • 科研业绩怎么写

    科研业绩怎么写 科研业绩怎么写是一个至关重要的问题。科研业绩怎么写能够反映出一个人的科研能力和研究成果。在写科研业绩时,应该注重细节,并且要准确反映一个人的科研成果。 在写科研业绩…

    科研百科 2024年10月9日
    12
  • 科研项目中长期激励机制科研项目中长期激励机制

    科研项目中长期激励机制 近年来,随着科技的快速发展,科研项目已经成为了推动科技进步的重要力量。然而,科研项目的顺利推进离不开科学家们的辛勤付出和团队协作。为了激发科学家们的工作热情…

    科研百科 2024年9月8日
    38
  • java小项目图书管理系统

    Java小项目图书管理系统 随着数字化时代的到来,图书馆的数字化改革也变得越来越重要。Java作为一门跨平台的编程语言,在图书馆领域也得到了广泛的应用。本文将介绍一个Java小项目…

    科研百科 2025年1月23日
    0
  • 定时任务工具,zTasker软件体验(定时任务 软件)

    不知道大家在Windows系统里,有没有关注过自带的任务定时功能。 如果你碰到过在某个特定的时段,电脑就开始卡顿,对正常使用都造成了影响,那么就可以打开“计算机管理”面板,查看一下…

    科研百科 2023年12月22日
    172
  • 临床科研项目管理系统有哪些(临床科研项目管理系统)

    临床科研项目管理系统临床科研项目管理系统实施方案这一项目包括哪些?1.(2019).(2020年)6月,ESA,T Pr I Przybylski,在这一届的选举中,DTI并不像大…

    科研百科 2024年9月26日
    18
  • 枸杞科研项目

    枸杞科研项目 枸杞是一种常见的水果,它不仅营养丰富,而且还具有多种保健功效。近年来,随着科技的不断发展,枸杞科研项目也在不断推进。 枸杞科研项目主要涉及枸杞的种植、加工、销售等方面…

    科研百科 2025年2月12日
    0
  • 研发管理系统项目看板

    研发管理系统项目看板 随着科技的不断发展,企业的研发工作也越来越复杂和庞大。为了有效地管理企业的研发工作,研发管理系统项目看板已经成为许多企业必不可少的工具。本文将探讨研发管理系统…

    科研百科 2024年12月13日
    1
  • 宣讲家文稿:加强基层党建,筑牢战斗堡垒(加强基层党建,夯实战斗堡垒)

    加强基层党建是落实全面从严治党的“牛鼻子”。把全面从严治党落实到基层,把每一个基层党组织都建设成为坚强战斗堡垒,密切党同人民群众的血肉联系才能落到实处。那么如何推进全面从严治党向基…

    科研百科 2023年11月14日
    167
  • 中国科研项目取名答题

    中国科研项目取名答题 近年来,随着科技的不断发展,中国的科研项目取名也变得越来越丰富多彩。在科研项目取名方面,中国有着悠久的历史和丰富的文化底蕴,许多科研项目的名称都充满了诗意和文…

    科研百科 2025年2月23日
    0