ActiveX 是什么,和IE什么关系
在推出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?
ActiveX的历史:
Netscape推出了NPAPI,给浏览器上打了洞,允许native代码运行,但是这个接口是很简陋的,只能用C开发,浏览器只负责加载插件,其它一切支持都没有,要插件自己搞定,作为扩展开发接口显然远远不够。
Sun推出了JavaApplet,一种用Java开发的浏览器嵌入式小应用平台,这个要好多了,起码有JVM和java api做支撑,开发起来容易多了,而且在Java虚拟机里运行也解决了用户对安全的顾虑,但是性能又成了问题。
本文来自博客园,作者:jiayouliucui,转载请注明原文链接:https://www.cnblogs.com/cheery-go/p/15567411.html