在推出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. [杭电新生赛]hgame-week1-web-wp

    hgame第一周总结 (官方wp更加简洁明了.直入主题,个人比较菜,所以过程繁琐 写好了一直没发qwq(就是懒(bushi) 一.Tetris plus! 题目里说玩到3000分就给flag,还真有点 ...

  2. Solution -「CF 494C」Helping People

    \(\mathcal{Description}\)   Link.   给定序列 \(\{a_n\}\) 和 \(m\) 个操作,第 \(i\) 个操作有 \(p_i\) 的概率将 \([l_i,r_ ...

  3. Aluminum: An Asynchronous, GPU-Aware Communication Library Optimized for Large-Scale Training of Deep Neural Networks on HPC Systems

    本文发表在MLHPC 2018上,主要介绍了一个名为Aluminum通信库,这个库针对Allreduce做了一些关于计算通信重叠以及针对延迟的优化,以加速分布式深度学习训练过程. 分布式训练的通信需求 ...

  4. Redis——入门学习笔记

    Redis学习 说到前面:这篇笔记只是我作为一个Redis新手,从0到认知的一个过程.后续会持续深入学习. 学习初衷和计划 学习Redis,因为这是热门技术,必须掌握的技术,别人都会我不会.就这一点就 ...

  5. windbg调试系列教程:sos扩展的介绍和使用

    SOS是什么? 直观来说,sos就是一个程序集文件.这个程序集的作用就是让我们在使用windbg分析.net进程时,更加方便快捷.通过sos,我们可以清晰的查看CLR运行时的各类信息,辅助我们去理解托 ...

  6. Owin Katana 的分析介绍

    本文首要是对美团的分布式ID结构Leaf的原理进行介绍,针对Leaf原项目中的一些issue,对Leaf项目进行功用增强,问题修正及优化改善,改善后的项目地址在这里: Leaf项目改善计划 https ...

  7. [LeetCode]1313. 解压缩编码列表

    给你一个以行程长度编码压缩的整数列表 nums . 考虑每对相邻的两个元素 [freq, val] = [nums[2i], nums[2i+1]] (其中 i >= 0 ),每一对都表示解压后 ...

  8. k8s-ingress增加跨域问题

    第一种: kubectl get ingresses. -n rrzhibo-admin test-rrzb-apiadmin-gateway-http-ingress -o yaml apiVers ...

  9. 通俗理解.NET 6 Minimal APIs

    .NET 6,微软称为"最快的.NET",带有了许多令人兴奋的新功能.语言和性能改进.这是自 .NET Core 3.1 以来的第一个 LTS 版本,将支持三年. 本次大版本发布, ...

  10. 企业为什么需要BI报表工具?

    企业一旦成规模运作起来,数据量是数以万计的,无论数据还是报表都需要协同管理不断更新.面对各大OA\ERP\CRM系统的数据,传统用Excel处理数据效率是很低下的.要想快速出报表,快速取数,快速做业务 ...