Edge浏览器没有让我失望! 今天终于可以在win10中模拟IE内核进行前端测试了!

简介: 在win10中模拟IE内核进行前端测试

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

2.png

前言 😝

ietest现在是不是不好用了? Edge浏览器仿真是不是不见了?

如图

3.png

如果我们在前端开发javascript遇见一些老旧的语法标准,想要测试一下都难,想想都抓狂!😤😤

不过不用担心,经过这几天的资料查阅,我还是找到了一个解决办法来模拟旧版IE内核,

其实根据微软官方给出的资料IE模式Windows 10版本上都是可用的!

只需要几步我们就可以调出Edge浏览器IE内核测试功能!

设置Edge 🏅

这里我以win10为例, 打开你当前最新安装的Edge浏览器, 并且切换到设置选项

如图

4.png

5.png

来到设置选项之后,我们选择默认浏览器

然后在右侧的运行在Internet Explorer模式下重新加载网站(IE模式)这一栏,我们选择允许

如图

6.png

接下来我们选择外观选项, 然后在右侧往下拉

找到Internet Explorer模式(IE模式)按钮这个选项,把旁边开关打开!

如图

7.png

这样设置以后,你就会发现右上角会多一个ie浏览器小图标

如图

8.png

Edge开启IE内核模式 🌍

我们再来打开一个web页面,并且开启IE内核模式看看效果!

比如我们用Edge打开一个页面之后,再点击右上角的ie浏览器小图标即可开启IE内核模式

如图

9.png

在弹出的对话框中选择完成即可!

Edge在IE模式中使用调试工具 🔨

当你在Edge中使用了IE模式之后,你可能会发现开发工具不能用了!

即便是你按下快捷键F12就会提示如下信息!

如图

10.png

其实你也不要慌张,它这里不是提示了有一个了解详细信息的链接吗! 我们点击进去!

就进入到微软官方所给的解决方案!

地址: https://learn.microsoft.com/zh-cn/microsoft-edge/devtools-guide-chromium/ie-mode

那么这时候我们要打开调试工具怎么办呢

这个时候我们可以打开运行对话框,你也可以按快捷键 win徽标键 + R

然后输入以下代码:

%systemroot%\system32\f12\IEChooser.exe

如图

11.png

单击确定, 我们就可以打开IE模式下的调试工具

然后根据需求在IEChooser中选择IE模式选项卡对应的文档即可进行调试!

12.png

最后我们就可以在这里进行调试,和选择IE模式的种类了!

如图

13.gif

代码测试 🚀

有了IE内核测试功能,我们在做前端测试的时候,就可以很方便的去测试一些比较老旧的标准或代码,以便于和现在最新的标准做比较!

使用javascript判断当前用户使用的是什么浏览器

当我们开发网页的时候,经常会遇到浏览器兼容性问题

对于不同的浏览器环境,我们可以通过javascript代码进行判断和处理。

js中,我们可以通过navigator.userAgentapi获得浏览器的一些信息,也就是浏览器标识符。

该字符串包含了浏览器名称、版本号、操作系统等信息,然后再通过正则表达式过滤字符串判断不同浏览器,大概思路就是这样子!

比如我们可以通过navigator.userAgent拿到ie5、ie7、ie8、ie9、ie10、ie11的浏览器信息!

console.log(navigator.userAgent);

然后我们就可以利用Edge中的IE模式来模拟这几种ie浏览器的信息!

打印所获取到的信息如下:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)  //ie5


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)  //ie7


Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)  //ie8


Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)  //ie9


Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) //ie10


Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko   //ie11

正则表达式判断当前浏览器是否为ie浏览器内核, 然后在这个基础之上再判断当前是哪个ie浏览器内核

var userAgent = navigator.userAgent;
if (/MSIE|Trident/.test(userAgent)) {
   
    alert('当前浏览器为ie浏览器');
}

打印测试结果如下图

如图
14.gif

测试结果为在其他浏览器是不会弹出这个警告框的,但是在ie浏览器内核下就会弹出警告框!

然后我们再来区分以下不同的ie版本

通过仔细观察规律你会发现ie5和ie7的浏览器信息都一样ie8、ie9、ie10这几个浏览器内核中的MSIE后面所跟的版本数字是不同的,至于ie11你可以用排除法,处理了其他ie浏览器,剩下的就是这个ie11

简单规划一下代码如下:

var userAgent = navigator.userAgent;
if (/MSIE|Trident/.test(userAgent)) {
   
    alert('当前浏览器为ie浏览器');
    if(/MSIE 7.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie5或ie7');
    }else if(/MSIE 8.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie8');
    }else if(/MSIE 9.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie9');
    }else if(/MSIE 10.0/.test(userAgent)) {
   
        alert('并且当前使用的浏览器为ie10');
    }else{
   
        alert('并且当前使用的浏览器为ie11');
    }
}

如图

15.gif

navigator.userAgent获取到的firefox、opera、Edge、Chrome这几个浏览器信息如下:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0  //firefox


Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 OPR/101.0.0.0  //opera


Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76  //Edge


Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36  //Chrome

仔细观察,里面基本上都有自己独特的地方,那么我们也可以拿到代码中进行过滤判断!

代码

var userAgent = navigator.userAgent;
if (/MSIE|Trident/.test(userAgent)) {
   
    alert('当前浏览器为ie浏览器');
    if(/MSIE 7.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie5或ie7');
    }else if(/MSIE 8.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie8');
    }else if(/MSIE 9.0/.test(userAgent)){
   
        alert('并且当前使用的浏览器为ie9');
    }else if(/MSIE 10.0/.test(userAgent)) {
   
        alert('并且当前使用的浏览器为ie10');
    }else{
   
        alert('并且当前使用的浏览器为ie11');
    }
}else if(/Firefox/.test(userAgent)){
   
    alert('你当前使用的浏览器为:Firefox火狐浏览器');
}else if(/OPR/.test(userAgent)){
   
    alert('你当前使用的浏览器为:opera欧朋浏览器');
}else if(/Edg/.test(userAgent)){
   
    alert('你当前使用的浏览器为:Edge微软浏览器');
}else{
   
    alert('你当前使用的浏览器为:Chrome谷歌浏览器');
}

使用javascript获取当前元素css样式

我们可以使用Edge模拟IE内核测试一下获取css属性的情况!

使用一个叫currentStyle属性

元素节点对象.currentStyle.css样式名称;

举个栗子

<style>
    #div1{
    
        border: 3px solid red;
        line-height:100px;
        text-align:center;
        font-size: 13px;
        color: red;
        background-color: greenyellow;
    }
</style>

<script>
    window.onload=function () {
    
        var but=document.getElementById('but');
        var div1=document.getElementById('div1');
        but.onclick=function () {
    
            console.log('当前元素的宽度是:'+div1.currentStyle.width);
            console.log('当前元素的宽度是:'+div1.currentStyle.height);
            console.log('当前元素的背景色:'+div1.currentStyle.backgroundColor);
            console.log('当前元素的字号:'+div1.currentStyle.fontSize);
            console.log('当前元素的文字颜色:'+div1.currentStyle.color);
        }
    }
</script>

<input type="button" value="读取css样式" id="but">
<br>
<div id="div1">北京市</div>

这里的currentStyle属性 仅仅只是ie浏览器才支持的属性 ,所以我们才要使用到Edge浏览器来进行模拟IE浏览器的内核进行测试!

效果如图

16.gif

chorme谷歌、Opera欧朋、FireFox火狐、Microsoft Edge这些浏览器是不支持的,在这些浏览器中使用currentStyle属性会报Uncaught TypeError(未捕获类型错误)的错误!

当然我们直接使用`getComputedStyle()这个方法就可以解决这个问题,这里我就不过多赘述了!

相关文章
|
17天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
3月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
22天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
27天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
32 1
|
2月前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
312 1
|
3月前
|
安全
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
|
4月前
Edge——如何打开IE浏览器进行访问
Edge——如何打开IE浏览器进行访问
72 4
|
5月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
103 3
|
5月前
|
存储 域名解析 缓存
函数计算产品使用问题之怎么使用浏览器测试函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
Web App开发 IDE Java
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
136 2