V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AnnaXia
V2EX  ›  程序员

IE9 的兼容让人头秃,吐槽和求助, IE9 中下载文件是如何实现的?

  •  
  •   AnnaXia · 2020-12-18 15:20:19 +08:00 · 4875 次点击
    这是一个创建于 1468 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为求稳定跳槽来了家国企,主要是给银行做开发的。

    最近完成项目系统功能后,被告知对方主要用 IE9 。

    试了下 IE9,心态崩了,css3 的许多属性不支持就算了,

    主要下载和上传功能也有问题,IE10 倒是可以兼容下载,

    但目前没找到处理 IE9 下载的解决办法。

    向上反馈后让我自己想办法多研究下。

    微笑.jpg ,前端生涯的重大危机。

    另外得到个教训,国企工资那肯定是赶不上互联网,

    但是也加班,固定加班,不管忙不忙。别问,问就是“自愿加班”。

    46 条回复    2020-12-21 10:19:32 +08:00
    GM
        1
    GM  
       2020-12-18 16:46:35 +08:00
    直接重定向到文件路径不就能下载了吗?这个有什么特别的吗?
    aloyuu
        2
    aloyuu  
       2020-12-18 16:47:17 +08:00 via Android   ❤️ 1
    你不说我都忘记还有 IE 这么个玩意儿
    murmur
        3
    murmur  
       2020-12-18 16:48:35 +08:00
    ie9 下载有啥不能解决的,乱码文件名? ie9 跟 ie8 差不多,做的难看点就完了,而且还能凑合用下 mvvm 框架
    murmur
        4
    murmur  
       2020-12-18 16:49:06 +08:00
    上传就更简单了,flash 搞定一切问题
    hbolive
        5
    hbolive  
       2020-12-18 16:50:04 +08:00
    IE6 和 IE8 都兼容过,IE9 下载有啥特别的吗?
    w292614191
        6
    w292614191  
       2020-12-18 16:51:31 +08:00
    FileSaver.js
    w292614191
        7
    w292614191  
       2020-12-18 16:52:48 +08:00
    @w292614191 #6
    看错了,IE 10+
    xiangyuecn
        8
    xiangyuecn  
       2020-12-18 16:54:57 +08:00   ❤️ 1
    能 flash 里面搞的功能都通过 flash 提供 api 来搞,反而不用考虑兼容问题😂
    wunonglin
        9
    wunonglin  
       2020-12-18 16:57:14 +08:00
    form 表单上传啊,有啥?
    murmur
        10
    murmur  
       2020-12-18 16:59:33 +08:00
    @wunonglin form 上传好像没进度条显示,要进度条还得 flash
    imjamespond
        11
    imjamespond  
       2020-12-18 17:52:00 +08:00 via Android   ❤️ 1
    ie 最重要的功能就是下载 chrome,你跟我说不能下载?
    wunonglin
        12
    wunonglin  
       2020-12-18 18:00:40 +08:00
    @murmur #10 假的不就行咯,慢慢到 99%
    loginv2
        13
    loginv2  
       2020-12-18 18:01:22 +08:00
    创建一个 iframe 。src 跳转下载地址
    wunonglin
        14
    wunonglin  
       2020-12-18 18:02:13 +08:00
    @murmur #10 或者你试试监听下 form 表单的 progress 事件,看看有没有值,这个我没试过,你试试看
    zarte
        15
    zarte  
       2020-12-18 18:47:45 +08:00
    下载有啥问题???直接 a 标签不行???
    话说你这国企不行呀还不如私企
    annielong
        16
    annielong  
       2020-12-18 19:01:18 +08:00
    从 ie6 过来,没见过下载问题,只遇到过在 ie 直接打开的问题
    hantsy
        17
    hantsy  
       2020-12-18 19:03:29 +08:00
    已经把 IE 11 从系统删除了。
    zjsxwc
        18
    zjsxwc  
       2020-12-18 19:17:14 +08:00 via Android   ❤️ 1
    ie9 does not support blob.
    forgottencoast
        19
    forgottencoast  
       2020-12-18 19:27:44 +08:00
    为什么不能下载?
    你用 IE9 打开微软的下载中心,看看它是怎么做的。
    ljpCN
        20
    ljpCN  
       2020-12-18 21:13:47 +08:00 via iPhone
    在 js 库 xlsx 的文档中有提到下载兼容性的问题:

    XLSX.writeFile techniques work for most modern browsers as well as older IE. For much older browsers, there are workarounds implemented by wrapper libraries.

    FileSaver.js implements saveAs.

    所以你可以尝试一下 FileSaver.js ,或者看看有没有替代品,或者研究下源码自己写一套兼容 ie9 的下载。
    leido
        21
    leido  
       2020-12-19 01:04:38 +08:00 via Android
    我一直觉得国企 /gov 用 IE 不是他们想用 IE
    而是现存系统都需要用 IE 打开
    anUglyDog
        22
    anUglyDog  
       2020-12-19 01:59:55 +08:00
    xJogger
        23
    xJogger  
       2020-12-19 09:28:30 +08:00 via Android
    这种加班人称“演戏”。
    例子:今天我要跟这帮孙子演到 11 点。
    murmur
        24
    murmur  
       2020-12-19 10:21:56 +08:00
    @leido 是的,最近对接一个系统,IE6 兼容性,还得装一包 active-x 才能跑
    whwq2012
        25
    whwq2012  
       2020-12-19 10:58:00 +08:00
    tm 的,内部主要用 IE9 这是理由吗,用 chrome 不香吗?完全可以静默安装推送安装,就是负责人在瞎几把扯淡,苦了用户,也苦了开发者
    qiaobeier
        26
    qiaobeier  
       2020-12-19 11:14:50 +08:00
    想当年我入行第一个项目也是银行的,细节都忘了,但要求是一定要兼容 IE5.5 。十多年了,记忆犹新啊。
    ArtsXiaoLu
        27
    ArtsXiaoLu  
       2020-12-19 11:15:36 +08:00
    年底 flash 就要死了,整个 IE 也早已被微软下达了死亡通知,
    当下 IE11 都要死了,国企还在搞什么 IE9,
    这不逼人开倒车么
    无论哪家企业,服务的都是人民,
    现在的人民还装不起 Windows10 吗,即便装不起 Windows10,
    Windows7 也还是支持 IE10 的,
    这不明显告诉你对方用的依旧是 XP 么,
    让年轻人干老人的活儿,等这帮老人被淘汰了,你的发展前景又在哪里
    两条建议,1 让他们升级,2 走人
    dvaknheo
        28
    dvaknheo  
       2020-12-19 11:24:09 +08:00
    @whwq2012 升级就不香了。

    比如某版 linux 自带的是 2015 年版的 chrome
    B/S 模式的内部系统。
    nodin
        29
    nodin  
       2020-12-19 11:36:05 +08:00 via iPhone
    这种企业讲的是稳定,只要不出问题,效率关他啥事。所以想让他们重新开发很难,就是缝缝补补又一年。而且,这种企业很多业务是外包给关系户的,能力不咋样,只会用特别成熟的,无错就行。
    whwq2012
        30
    whwq2012  
       2020-12-19 11:43:06 +08:00
    @dvaknheo 一般都是内网,又不会去升级。。。又不是不能分发老版本
    systemcall
        31
    systemcall  
       2020-12-19 13:39:12 +08:00
    XP 最大 IE8,IE9 是 Vista~win7 才可以用
    十有八九是有些别的东西必须要用 IE9,而且迁移很贵
    以前有种东西可以在 IE8 或更高版本里跑 CEF 的,忘记叫什么了,以前的 Gmail 有用到,来解决 IE 的兼容性问题
    能换 Chromium 早就换了,那样的话还可以拿国产化的补贴、捞国产化的油水。Chromium 改个名字就是国产的了,Ubuntu 也是。那么捞钱的东西不去做,说明更换确实很烧钱或者是是个小需求
    mxT52CRuqR6o5
        32
    mxT52CRuqR6o5  
       2020-12-19 18:43:39 +08:00 via Android
    让后端处理 /使用 flash 技术
    YouLMAO
        33
    YouLMAO  
       2020-12-19 19:07:55 +08:00
    给各个浏览器重写所有代码, 一定能行
    52coder
        34
    52coder  
       2020-12-19 20:16:20 +08:00
    IE9………………
    jzmws
        35
    jzmws  
       2020-12-19 22:21:32 +08:00
    国企让你兼容 ie9 已经很好了,0202 年了我搞过兼容 IE8 的, 把前端逼疯。 关键是还要搞个虚拟机测试。
    qwerthhusn
        36
    qwerthhusn  
       2020-12-19 23:26:01 +08:00
    今天应厂商要求下了个 windows server 2016,然后想安装向日葵,发现系统就一个 IE,进了向日葵的官网下载,发现点击没反应。。。。然后又用自己电脑向 S3 上传个 exe,然后那边手输 url 访问,发现还是没有触发下载

    最后实在扛不住了,找半天找个个 U 盘传过去完事。
    oxromantic
        37
    oxromantic  
       2020-12-20 03:12:52 +08:00 via iPhone
    @qwerthhusn 你这太离谱了,至少下载 chrome 还是久经测试的
    DOLLOR
        38
    DOLLOR  
       2020-12-20 10:18:18 +08:00
    flash,或者
    ActiveX,或者
    提交给后端生成二进制流

    总会有办法的
    meepo3927
        39
    meepo3927  
       2020-12-21 08:55:56 +08:00
    IE9 下载需要借助后端了。
    上传就用 Form[POST]+ input[file] ,需要异步的话,就加个隐藏 iframe 接受返回值。
    AnnaXia
        40
    AnnaXia  
    OP
       2020-12-21 09:16:28 +08:00
    关于大家的猜测统一回复下,对方用的是 win7,是的,我也查过了,win7 应该可以用到 IE11 。他们也可以用 chrome,我也向项目经理过了,但就是说对方主力是 IE9,需要能支持 IE9 。理由基本就是 @whwq2012 #30 这位老哥说的,他们生产环境,软件安装升级都有限制。
    AnnaXia
        41
    AnnaXia  
    OP
       2020-12-21 09:17:02 +08:00
    @anUglyDog #22 谢谢,你反馈的这个我之前就做了,但 IE9 不适用。
    AnnaXia
        42
    AnnaXia  
    OP
       2020-12-21 09:20:30 +08:00
    @GM #1 不是啊,这边需要在 body 里传数据后,后端返回文件流。所以我不知道 IE9 要怎么做,之前用的 XMLHttpRequest 发起 post 或 get 请求后,拿到文件流处理后,通过 a 标签的方式下载的,win10 用的 navigator.msSaveBlob 。但 win9 不适用
    AnnaXia
        43
    AnnaXia  
    OP
       2020-12-21 09:26:03 +08:00
    @murmur #3 请问 IE9 是怎么下载的呢?能大概说下么
    @zjsxwc #18 啊对,现在后端是返回文件流,所以我不知道怎么弄
    AnnaXia
        44
    AnnaXia  
    OP
       2020-12-21 09:27:22 +08:00
    @meepo3927 #39 你好,请问这个 IE 9 下载要借助后端,是需要后端如何处理呢?
    murmur
        45
    murmur  
       2020-12-21 09:30:24 +08:00
    @AnnaXia 当然是服务器处理,不要什么都用 blob 在前端生成
    AnnaXia
        46
    AnnaXia  
    OP
       2020-12-21 10:19:32 +08:00
    @murmur #45 意思是需要后端返回生成文件的路径,然后前端重定向到文件路径去下载,类似<a href="下载文件的 url" target="a">,是这样么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:05 · PVG 04:05 · LAX 12:05 · JFK 15:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.