在推出25年多以后,IE浏览器终于要退役了。 据外媒报道,微软决定自2022年6月15日起,让IE浏览器彻底退出互联网舞台,并全面改用Microsoft Edge浏览器。 关于IE的历史可以参考这篇文章 微软:别再使用IE浏览器了!! - 知乎 (zhihu.com)

对于一个BS网站的开发者来说,我们最关心的是,IE退役将给我们带来什么样的影响?

周一上午领导找我说,IE今年年底微软不再支持了,你看看咱们项目中有什么功能是依赖IE的?

1.前端不会受影响,专门写的兼容IE的样式或者js只能算作冗余,也不是bug,可以不理会;

2.百度发现:ActiveX控件是只支持IE的,这个得特别关注,有点懵,不了解。一顿乱搜之后,脑袋有点胀。

静静之后,梳理思路,还是从问题下手,搞清楚他是个什么东西,在项目中怎么使用,这才知道怎么找出ActiveX的引用。

1、ActiveX 是什么东西? 是用c++开发的可以运行Native代码的控件,安装到IE浏览器的加载项中。由于可以运行Native Code所以给客户端用户带来很大的安全隐患。

2、ActiveX用来干什么?实现一些额外的功能,如播放视频,音频,动画,以及读取其他特定的文件等

3、为什么其他浏览器不支持加载ActiveX? 因为其安全问题,其他浏览器更易于使用java applets 相对安全

ActiveX 是IE独有的控件, 微软的初衷是可以自动下载带有数字签名的ActiveX控件,不过并非所有的开发者都会申请数字证书,用户通过调整浏览器安全级别,浏览器可以自动下载ActiveX,因此带来了很多安全问题。

Chrome、Firefox和其他浏览器使用插件和扩展来完成ActiveX控件的功能

4、IE退役,如何找出我们项目中ActiveX的调用?

BS项目中ActiveX在浏览器调用的语法:

加载ActiveX的前端代码 <object id='myObj' classid='clsid:sdfasfasdf' ></object>

clsid对应的值可以在IE浏览器-管理加载项-工具栏和扩展中 找到你安装的ActiveX控件,双击显示的相信信息中 类ID对应

HTML <object> 元素(或者称作 HTML 嵌入对象元素)表示引入一个外部资源,这个资源可能是一张图片,一个嵌入的浏览上下文,亦或是一个插件所使用的资源。

MDN原文:请记住,大多数现代浏览器已经弃用并取消了对浏览器插件的支持,所以如果您希望您的网站可以在普通用户的浏览器上运行,那么依靠 <embed> 通常是不明智的。

参考:Why doesn't ActiveX work for Google Chrome and Mozilla Firefox? Other Browsers (activextest.com)

ActiveX的历史:

Netscape推出了NPAPI,给浏览器上打了洞,允许native代码运行,但是这个接口是很简陋的,只能用C开发,浏览器只负责加载插件,其它一切支持都没有,要插件自己搞定,作为扩展开发接口显然远远不够。

Sun推出了JavaApplet,一种用Java开发的浏览器嵌入式小应用平台,这个要好多了,起码有JVM和java api做支撑,开发起来容易多了,而且在Java虚拟机里运行也解决了用户对安全的顾虑,但是性能又成了问题。

微软选择的方案比较折中,ActiveX,它允许运行Native代码,可以用C++开发,几乎所有的WinAPI都可以用,甚至某些C++ Framework都能用,比如MFC ATL,在权限验证上有数字签名校验和一些简单的运行期权限验证。它选择了COM作为基础接口规范,只能和Windows、IE死死绑定,不过微软家的思路一向是“这个世界都应该用Windows,所以无需跨平台”

ActiveX 是什么,和IE什么关系的更多相关文章

  1. ActiveX、OLE和COM的关系(转自百度文档)

    比较流行的组件模型有COM(Component Object Model,对象组件模型)/DCOM(Distributed COM,分布式对象组件模型)和CORBA(Common Object Req ...

  2. Activex、OLE、COM、OCX、DLL之间的区别(转)

    熟悉面向对象编程和网络编程的人一定对ActiveX.OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的.在具体介绍它们的关系之间,我们还是先明确组件(Co ...

  3. Activex、OLE、COM、OCX、DLL之间有什么区别?

    来源:http://www.blogjava.net/Jack2007/archive/2008/04/27/196392.html         熟悉面向对象编程和网络编程的人一定对ActiveX ...

  4. Activex、OLE、COM、OCX、DLL之间区别、联系[转]

    转自:http://baike.baidu.com/view/393671.htm 创建COM:http://blog.csdn.net/henry000/article/details/700839 ...

  5. ActiveX 控件

    一.ActiveX基础 1.1什么是ActiveX ActiveX是COM规范的一种实现,前身是OLE(Object Linking and Embedding).一般读成:ActiveX Ctron ...

  6. ActiveX、OLE和COM/DCOM

    ActiveX:开放的集成平台 为开发人员. 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法(就是提供了一个方法). 使用 Active ...

  7. IE加载项

    加载项   加载项也称为ActiveX控件.浏览器扩展.浏览器帮助应用程序对象或工具栏,可以通过提供多媒体或交互式内容(如动画)来增强对网站的体验. 但是,某些加载项可导致计算机停止响应或显示不需要的 ...

  8. OCX组件

    转自:http://blog.sina.com.cn/s/blog_4ca9ceef0100ixzb.html 一.OCX(OLE Control Extensio,OLE Object Linkin ...

  9. Python的扩展接口[2] -> 动态链接库DLL[0] -> 动态链接库及辅助工具

    动态链接库 / Dynamic Link Library 目录 动态链接库简介 函数封装DLL 组件对象模型COM 如何判断.dll文件是COM还是DLL 辅助工具 1 动态链接库简介 / DLL I ...

随机推荐

  1. 部署YUM仓库及NFS共享服务

    部署YUM仓库及NFS共享服务 目录 部署YUM仓库及NFS共享服务 一.YUM仓库服务 1. YUM概述 2. 部署YUM软件仓库 (1)准备安装源 ①YUM仓库的种类 ②RPM软件包的来源 ③构建 ...

  2. Ubuntu18配置静态IP地址

    1. 记住网卡名称 ifconfig 2. 记住网关地址 netstat -rn 3. 配置静态IP 注意:Ubuntu18固定IP的方式跟Ubuntu18之前版本的的配置方式不同, Ubuntu18 ...

  3. ios真机弱网测试

    一.开启苹果手机开发者选项 首先你需要将iPhone和一台Mac电脑相连接,然后在Mac上打开Xcode开发工具,此时你iPhone的设置里就会出现"开发者"这个选项了. 二.进入 ...

  4. fiddler模拟2

    在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致 ...

  5. VC709E 基于FMC接口的FPGA XC7VX690T PCIeX8 接口卡

    一.板卡概述 本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片,支持PCIeX8.两组 64bit DDR3容量8GByte,HPC的FMC连接器,板卡支持各种FMC子卡 ...

  6. Solution Set - Stirling 数相关杂题

      <好多题的题解>   「洛谷 P5408」第一类斯特林数·行   根据结论 \[x^{\overline{n}}=\sum_i{n\brack i}x^i, \] 我们只需要求出 \( ...

  7. Solution -「51nod 1868」彩色树

    \(\mathcal{Description}\)   Link & 双倍经验 Link.   给定一棵 \(n\) 个结点的树,每个结点有一种颜色.记 \(g(u,v)\) 表示 \(u\) ...

  8. Ultra Math Preview : VSCode上的LaTeX公式实时预览插件

    一直觉着 VS Code 的 TeX 公式(包括 markdown 和 LaTeX)只能在定界符上hover预览,或者开一个预览面板看,没有那种像 Typora 一样紧跟在公式后面的预览面板,多少有些 ...

  9. IPMI日常使用

    重启ipmi: ipmitool mc reset  <warm|cold>  warm表示软重启: cold表示硬重启:   设置IPMI地址: ipmitool lan set 1 i ...

  10. can_has_stdio?

    得到一个用±<>这样符号组成的五角星,结合题目stdio,估计是c语言编译后的文件 查到BrianFuck语言,找个在线编译器或者找到编译码(c++)得到flag 在线编译网站 brain ...