
这事儿说起来其实挺蛋疼的。Win10出来以后微软就铁了心要弄死IE但偏偏很多企业内部系统、银行U盾控件、老旧的OA平台甚至一些工控设备的配置页面就只认IE的老版本。你双击IE图标它自己就蹦到Edge去了完事Edge里那个所谓的“IE模式”默认还是IE11可有些老古董得IE8甚至IE7才能正常打开。所以到底怎么在Win10上搞出能用的旧版IE我这些年踩了不少坑记录一下。先看看系统里还有没有IE这个组件不少Win10版本其实把IE11作为一个可选组件藏在系统里。你可以在控制面板里找“程序和功能”左边有个“启用或关闭Windows功能”弹出来的框里找Internet Explorer 11看看前面是不是打勾的。没有的话就勾上确定重启。这一步没啥技术含量但很多人第一步就忘了。重启之后你可能会发现打开IE还是跳Edge。这得改默认浏览器设置。Win10设置里找“默认应用”把Web浏览器的默认值从Edge改成Internet Explorer。但这么做有个隐患以后你点别的链接也可能直接用IE打开体验不咋地。更优雅的办法是直接让IE独立跑起来——后面会说。把IE11降级成IE10的土办法有些早期Win10版本比如1511或者1607出厂预装的就是IE10。后来补丁一打就升到IE11了。想回去就得卸载那个更新。具体操作控制面板 - 程序和功能 - 查看已安装的更新。在列表里找名称带“Internet Explorer 11”的KB开头的更新常见的有KB3176493、KB4014661这种。右键卸载它让你重启就重启。完事系统里IE的版本就退回到出厂时候的IE10了。但是如果你用的是比较新的Win10版本比如21H2或22H2这个方法基本没用因为新版本的内核里IE11已经写死了卸载更新也回不去。这时候就得换个路子。Edge里的IE模式其实没那么好用Edge的IE模式底层调用的还是Trident MSHTML引擎不是模拟是真正跑了个IE实例。但问题是它默认只给IE11。你可以在Edge设置里加一个列表把某些域名永远用IE模式打开。具体位置Edge设置 - 默认浏览器 - “允许在Internet Explorer模式下重新加载网站”打开然后下面有个“Internet Explorer模式页面”把你需要的网站地址加进去。这个模式有个比较隐蔽的点你可以通过本地组策略来批量部署。对搞企业IT的人来说用ADM或者ADMX模板推下去几百台机器一次搞定省得每台电脑都手动加。但IE模式的坑在于你想按F12调出开发者工具看看兼容性问题到底出在哪它会提示“开发人员工具在IE模式下不可用”。这就很扯淡你没法调试。绕过开发者工具限制的小技巧这个问题我查了好久最后发现微软其实留了个后门。你直接运行一个叫IEChooser.exe的东西它在系统目录里完整路径是%systemroot%\system32\f12\IEChooser.exe你可以在WinR运行框里输这个回车或者自己写个bat扔桌面上。打开以后会弹出一个窗口里面能看到当前Edge里所有IE模式下的标签页。选中那个条目它就会弹出一个独立的F12开发者工具界面而且这个界面里有个“仿真”选项卡你可以把文档模式从IE11往下拉到IE10、IE9、IE8甚至IE7。注意这只是改变了当前页面里IE引擎的渲染行为并不是真的把浏览器内核版本换了。但对做兼容性测试来说基本够用了。直接跑独立IE进程的真·硬核办法上面说的都是基于Edge的IE模式终归绕不开Edge。那有没有办法在Win10上跑一个完全独立的、不跳转Edge的IE进程有。你去搜一下IE的启动参数。有一个参数叫-Embedding还有一个叫-Private但最好用的是-extoff。你可以在命令行里或者快捷方式目标里这样写C:\Program Files\Internet Explorer\iexplore.exe -extoff这个-extoff的意思是“禁用所有加载项”但它的副作用是启动的IE进程不会被Edge的跳转机制拦截。为什么呢因为微软那个强制跳转的逻辑是在IE的加载项里实现的你直接把加载项全禁了跳转逻辑就没法触发。用这个参数启动的IE进程你可以正常访问任何网站而且F12开发者工具完全可用。缺点是你没法用任何ActiveX控件或者BHO因为加载项整个被禁了。但如果你只是想拿IE来调试网页、看看CSS兼容性这个办法足够了。虚拟机方案最稳但最重如果你需要的是一个完全干净的、任意版本的IE比如IE8专门测XP时代的老系统那说实话最稳的办法还是虚拟机。微软官方其实提供过免费的Windows虚拟机镜像叫“Windows 10 development environment”这些镜像里预装了不同版本的Edge和IE。以前还有一个专门的网站叫modern.ie微软在里面放了各种版本的WindowsIE组合的虚拟机镜像包括IE8 on Win7、IE9 on Win7、IE10 on Win8等等。后来这个网站关了但镜像文件在archive.org上还能找到。你可以用VirtualBox或者VMware把这些镜像跑起来。每个镜像有效期只有90天不过你可以在快照里还原或者用脚本重置激活计时器。还有一个小众的方案用Windows Sandbox。Win10专业版以上有个沙盒功能启动以后是一个全新的临时Windows系统里面自带的IE版本和宿主机一样。但你可以进去以后用上面说的卸载更新的办法把IE11降级不行因为沙盒里的系统版本是当前宿主机的镜像版本一致。所以沙盒只适合做隔离测试不适合降版本。利用开发者工具的仿真模式如果你懒得开虚拟机也不想用Edge的IE模式还有个更轻量级的办法直接在当前IE11里开F12切到仿真选项卡。这里可以把文档模式设成IE8、IE7、IE5等等用户代理字符串也能改。这个方法的原理是IE11的渲染引擎是向后兼容的它内部实现了多个文档模式的解析规则。当你选IE8模式时它会把CSS解析器、JS引擎、DOM API都模拟成IE8的行为。但这毕竟不是真正的IE8内核有些底层特性比如某些ActiveX控件还是不行但对于前端CSS兼容性测试已经足够准了。一个小众的注册表改法网上有一种做法是修改注册表让IE重新变成可独立启动的。HKEY_CURRENT_USER\Software里面新建一个DWORD值名字叫DisableEdgeLaunchOnIE把值设成2。也有人说是HKEY_LOCAL_MACHINE下面的路径。我试过几个版本有的有效有的无效感觉微软每个更新补丁都会改这个逻辑。不太靠谱就不推荐了。总结一下日常用的顺手方案我自己平时调试老旧系统一般是这么几种路子轮着用如果只是看一眼网站能不能打开用Edge的IE模式加域名白名单就够了省事。如果需要按F12调试就用IEChooser.exe那个办法在独立工具里切文档模式。如果需要真正跑ActiveX控件比如银行U盾那种就用-extoff参数启动独立IE进程控件能正常加载。如果需要测IE8及以下的极端兼容性老老实实开虚拟机别挣扎。Win10上搞旧版IE这事本质上就是在跟微软的“现代化”策略对着干。但没办法企业环境里那么多老系统不是说升级就能升级的该折腾还得折腾。希望上面这些土办法能帮你少走点弯路。