chromeframe安装包哪里找?老插件的前世今生大揭秘

tmyb

哥们儿,今天想跟大家聊聊一个有点年头的东西——Chrome Frame。可能现在好多新入门的朋友都没听说过了,但当年这家伙可是帮了我不少忙。

起因:那些年被IE折磨的日子

我记得那是好几年前了,那时候我还在折腾一些网页前端的活儿。最头疼的是就是那个万恶的IE,尤其是IE6、IE7、IE8这几位爷。咱们辛辛苦苦按照标准写好的页面,在火狐、Chrome上看着漂漂亮亮的,一到IE上,得,全乱套了!那真是叫一个抓狂。

客户那边,又有很多用户还在用着老掉牙的操作系统,捆绑的就是这些老IE。你跟他说换浏览器,人家要么不懂,要么嫌麻烦,要么公司规定不让换。兼容IE,尤其是低版本IE,成了当时每个前端开发心里的痛。

我当时就面临这么个情况:

  • 一些新的CSS特性用不了,用了IE也不认。
  • JavaScript跑起来也慢,还时不时给你报些莫名其妙的错。
  • 为了兼容,得写一堆hack代码,丑不说,维护起来也费劲。

每天花在调IE兼容性上的时间,比写新功能的时间都多,真是郁闷到不行。

转机:发现Chrome Frame

就在我焦头烂额的时候,偶然间,我听说了谷歌搞了个叫“Google Chrome Frame”的东西,中文名叫“谷歌浏览器内嵌框架”。我当时眼前一亮,心想这是个啥玩意儿?

赶紧就去了解了一下。原来,这东西是个IE的插件。它的核心思想挺巧妙的:用户电脑上装的还是IE,但是如果网页开发者在页面里加一个特殊的标记,那么这个插件就会被激活,用Chrome的内核(也就是当时还叫WebKit,后来是Blink)来渲染这个网页。

也就是说,对用户来说,他打开的还是那个IE图标,但实际上看到的,是Chrome渲染出来的效果!这不就完美解决了IE的兼容性问题嘛既不用强制用户升级或者换浏览器,又能让网页享受到现代浏览器的待遇。

实践:上手安装与测试

我当时觉得这简直是救星!立马就找了个测试机,上面装的是IE8。然后我就去谷歌的官方页面找这个Chrome Frame。那时候还挺方便的,直接就能在线安装。

我的步骤大概是这样的:

  1. 找到安装源: 记得当时是在谷歌的某个专门页面上,有在线安装的选项。
  2. 下载安装: 点击安装,它会自动下载一个小文件,然后运行安装程序。过程挺快的,没几分钟就搞定了。装完之后,IE本身看起来没啥变化。
  3. 修改网页代码: 关键的一步来了。要在你的网页HTML代码的<head>标签里,加入一个特定的<meta>标签,类似这样:<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">。这个chrome=1就是告诉IE,如果装了Chrome Frame,就用它来渲染。
  4. 测试效果: 我把自己之前一个在IE8下显示得乱七八糟的测试页面,加上了这个meta标签,然后用那个装了Chrome Frame的IE8打开。

结果你猜怎么着?奇迹发生了!

那个页面,之前在IE8里是各种错位、样式丢失,但加了标签,用Chrome Frame渲染后,哗的一下,跟在Chrome浏览器里看到的效果一模一样!那些CSS3的圆角、阴影,之前IE8不支持的,现在全出来了!JavaScript的执行速度也感觉快了不少。

我当时那个激动,来回试了好几次,确认不是眼花。这玩意儿太神了!

后续:推广和逐渐淡出

后来我就开始在我负责的一些项目里尝试使用Chrome Frame。对于那些实在没办法让用户升级IE,但又想用一些新特性的项目,这确实是个不错的折中方案。

它也不是万能的。用户电脑上得先装上这个插件才行。对于一些内部系统,可以通过IT部门统一推送安装。但对于外部用户,你就得引导他们安装,这就有点麻烦了,不是所有用户都愿意多装个东西。

不过随着时间的推移,IE的市场份额不断下降,尤其是IE6、7、8这些老古董慢慢被淘汰,Edge浏览器也出来了,加上现代浏览器自动更新越来越普及,开发者们对这种“曲线救国”方案的依赖也越来越小了。

我记得大概是2013年还是2014年的时候,谷歌就宣布停止对Chrome Frame的支持和更新了。因为它完成了它的历史使命。那时候,我已经不怎么为IE的兼容性问题那么头疼了。

现在回想起来,Chrome Frame真算得上是特定时期的一个巧妙发明。它没有试图去直接取代IE,而是用一种“寄生”的方式,在IE的躯壳里注入了Chrome的灵魂,帮助我们这些开发者渡过了那段比较难熬的时光。

虽然现在已经用不上了,但每次想到它,我还是挺感慨的。技术就是这样,不断发展,不断有新的东西出来解决老的问题,也有一些曾经的“神器”会慢慢退出历史舞台。但它们在特定时期发挥的作用,还是值得我们记住的。

好了,今天就跟大家分享到这里。算是一点小小的怀旧!