Web前端页面的浏览器兼容性测试心得(二)搭建原汁原味的IE8测试环境
如果你做的页面被老板或PM要求兼容IE8,你就值得同情了。IE8不支持HTML5,在2017年的前端界,开发者不涉及HTML5标准简直寸步难行。然而,有一个可怕的事实客观存在,那就是IE8是Win7系统的默认浏览器!!!一想到国内Win7用户的可观数量,简直男默女泪。对于普通用户,360安全浏览器的知名度和使用量都大大高于Chrome,而360浏览器的兼容模式(Win7系统下),大部分就是IE8版本的内核。
怎么办?当然是硬着头皮凉拌呗。有一个问题是,使用Win8、Win10、Mac、Linux系统的前端开发者,很难在本机上用IE8内核测试网页。除了借用产品经理的老电脑(产品经理的电脑通常都是跑什么东西都会出Bug的异空间),还有其他办法吗?当然有。主要有以下几类:
- 安装第三方测试软件,如IETester。这种方法不推荐,因为目前根本没有好用的多版本IE内核测试软件。尽管IETester等软件的功能很诱人,但是问题多多,满是Bug,好像也不怎么更新。
- 在Win8、Win10下使用IE11的“仿真”功能。在IE11按下F12进入开发者工具,在“仿真”选项卡里可以设置想要模拟的内核版本号。这种方法最为简单,但这并不是原汁原味的Win7-IE8测试环境,有时候显示效果可能和在真实环境下有所不同。而且,不适用于Mac和Linux用户。
- 使用虚拟机。这也是本文着重讲述的方法,因为微软曾推出过专用来在IE8内核下测试网页的免费映像,这是真正原汁原味的测试环境。
2016年,微软在开发者中心发布了新版虚拟机,该虚拟机用来测试Windows10 Edge浏览器和IE8至IE11,有效期为90天(超过90天则需要重新配置),相关用户可免费下载。该虚拟机有Windows、Mac和Linux三大类版本,涉及IE8至Win10最新预览版的Edge浏览器,可用于VirtualBox、Vagrant、HyperV以及UMware等主流虚拟机。

下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
本文将介绍“IE8 on Win7”虚拟机在Hyper-V(Win8、Win10专业版自带的虚拟机软件)平台上的安装和使用。如果你是Mac、Linux用户,或者想使用不是Hyper-V的其他虚拟机软件,以下内容就可以跳过了。
我选用Hyper-V的理由和上一篇文章“Web前端页面的浏览器兼容性测试心得(一)搭建测试用本地静态服务器”相似,那就是Hyper-V也是Windows自带的,不用折腾而且配置方便,何乐而不为呢?以下操作步骤以Win10系统为例:
打开上文所给网页,如下图所示进行选择,然后下载虚拟机:

打开控制面板,进入“程序与功能”(以下步骤是开启Hyper-V服务。如果你的电脑上已开启Hyper-V,可以直接跳到第6步):

点击“启用或关闭windows功能”:

勾选“HyperV”选项并确定:

Windows开始添加Hyper-V功能,这会持续几分钟。完成时如果提示“Windows需要重启电脑才能完成安装所请求的更改”,可以选择立即启动电脑或不重新启动电脑,在下次重新开启电脑时就可正常开启Hyper-V虚拟机功能。

在开始菜单的“Windows管理工具”目录下,找到并打开“Hyper-V管理器”(建议把该快捷方式放到桌面或固定在开始菜单,以后打开会更方便)。

解压下载到的“IE8.Win7.For.Windows.HyperV_2012.zip”压缩包。该压缩包建议保留,最好不要删除,因为虚拟机的90天限期一到,就可以重新解压并更新虚拟机。
在Hyper-V管理器右侧点击“新建”>“虚拟机”:

在“新建虚拟机”向导中,前几步都可以自行配置或进行默认配置,但在“连接虚拟硬盘”页的三个选项里,要选择“使用现有虚拟硬盘”,并把下方的“位置”定位到压缩包解压目录的“\Virtual Hard Disks\IE8 - Win7.vhd”文件。

创建虚拟机后,如果你在之前向导里的“配置网络”页没有选项可选,那么你就需要创建虚拟交换机了。点击主界面右侧的“虚拟交换机管理器”,在新窗口开始创建虚拟交换机。依次点击“外部”、“创建虚拟交换机”,然后在“外部网络”的下拉菜单中选择你可以访问外网的设备并点击“确定”。



创建虚拟交换机后,在主界面选择第9步创建的虚拟机,在右下方点击“设置”,弹出“设置”窗口后点击左边“网络适配器”,选择刚刚创建的虚拟交换机,点击“确定”即可完成设置。


终于可以开始启动虚拟机了。在主界面选中创建的虚拟机,在右下方点击“连接”,在新窗口点击开机键。

稍等片刻,虚拟机就会开机了。使用微软给好的虚拟硬盘文件,就可以顺利初始化IE8-Win7测试环境,是不是很方便?
在本地服务器已经建立的情况下(见上篇文章“Web前端页面的浏览器兼容性测试心得(一)搭建测试用本地静态服务器”),打开IE8,输入本机IP地址,你会发现虚拟机里也可以访问本地服务器哦。这样,在服务器目录下丢入要测试的网页,就可以在原汁原味的Win7虚拟机上进行测试了。

IIS和Hyper-V,还有微软提供的专用虚拟机,上篇文章和这篇文章里所介绍的利器一结合,测试前端页面再也不是什么困难事儿。后续我打算总结一些使HTML5兼容IE8的技术经验,祝你写的页面能够完美地兼容IE8!
Web前端页面的浏览器兼容性测试心得(二)搭建原汁原味的IE8测试环境的更多相关文章
- Web前端页面的浏览器兼容性测试心得(一)搭建测试用本地静态服务器
自从实习以来,我体验了由一个人编程再到多人协作编程的转换.同时也接触了很多新鲜事物,学到了很多东西.工作时,常常需要多个人协同测试一张H5页面(PC.手机.平板等跨设备测试),也会经常把页面给PM或老 ...
- Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案
由于IE8不支持HTML5,而它又是Win7的默认浏览器,我们即使讨厌它,在这几年却也拿它没办法. 最近做了个需要兼容IE8的项目,不可避免地用了HTML5+CSS3,甚至canvas和svg,做兼容 ...
- 【web前端开发】浏览器兼容性处理
1.居中问题div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto;2.高度问题两上下排列或嵌套的div,上面的div设置高度(height),如果div里的 ...
- 转:【web前端开发】浏览器兼容性处理大全
解决思路: ①.写代码的时候遵循W3C标准,按照最新稳定版本的IE或WebKit内核浏览器进行编码 ②.遇到部分无法全面解决浏览器兼容的时候,采取CSS的hack手段进行针对性微调.简单的说,CSS ...
- 【web前端开发】浏览器兼容性处理大全
1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...
- web前端页面优化——个人见解
web前端页面优化,我们从JavaScript.css.html这3个方面说下,我的见解,希望大神们能有刚好优化方法,一起探讨. 一. 有关javascript方面 优化见解. 1. 首先举个例子: ...
- Web 前端页面性能监控指标
Web 前端页面性能监控指标 性能监控 / 性能指标 / 性能优化 白屏时间计算 FCP 白屏时间:从浏览器输入地址并回车后到页面开始有内容的时间: 首屏时间计算 FMP 首屏时间:从浏览器输入地址并 ...
- web前端页面项目经验总结
项目时间:2016年4月5日--4月9日项目名称:阿七果子园web前端页面项目内容: 1.HTML5+CSS+JavaScript(banner+timer)+JQuery(small_bann ...
- 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(1)-Web前端页面
本 Web 系统框架基于C# EF6+MVC+WebApi的快速应用开发平台.本节主要介绍Web前端页面设计与实现.Web前端页面主要分为普通列表页面.树状导航列表页面.普通编辑页面.数据导入页面.向 ...
随机推荐
- ETL概念,ETL流程
ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要的一个环节. 通常情况下,在 ...
- [转]这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器(火狐,IE,Chrome,Opera,Safari)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 主线程不能执行耗时的操作,子线程不能更新Ui
在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法: 在看方法之前看一下Android中消息机制: 引用 Message:消息 ...
- URL地址传值型多条件搜索JS
function ResetSearchVal(objArray) { var strUrl = location.href; ; i < objArray.length; i++) { var ...
- poj 1386
Play on Words Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11312 Accepted: 3862 De ...
- 【BZOJ1895】Pku3580 supermemo Splay
[BZOJ1895]Pku3580 supermemo Description 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg ...
- python3 + selenium + (chrome and firefox)使用
目录 瞎扯一句 简介 最后放模板 瞎扯一句 最近在做一个关于 selenium 相关的项目,在选择浏览器方面,一般有3种方案: chrome phantomJs firefox(推荐) 网上有很多教程 ...
- js 闭包与垃圾回收-待删
关于闭包请看戳 串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包,本篇写的不太好: 先摆定义: 函数对象,可以通过作用域链相互关联起来,函数体内部的变量都可以保存在函数作用域内,这种 ...
- 170321、Spring+Quartz实现定时任务的配置方法
Quartz是Java版开源定时调度器. 核心概念: Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void execute(JobExecutionContext context): ...
- 160420、zTree获取所有选中节点数据
<!DOCTYPE html><HTML><HEAD> <TITLE> ZTREE DEMO - Standard Data </TITLE> ...