:::[下载源文件]:::(内含GeckoFX和XULRunner,编译即可运行)


在.NET编程中,如果要用到WebBrowser这类控件加载网页到程序里边,直观上首选的一定是VS所提供的IE。可惜,XP系统预设的版本是IE6,很多近几年的网页技术它都不支持。尽管替换为IE8会好一点,但是也好不了多少,相信XP的用户体会很深刻吧。那么,装个IE9、IE10、11、12、13、14,不就解决了?抱歉,XP系统不支持安装IE9或以上的版本。为什么?我不清楚,建议你可以问问Bill Gates。


常见的Web Browser主要有两个引擎(engine):渲染(render/layout)和脚本(script)。


  • Microsoft Internet Explorer: Trident + JScript (a component in Trident, or Chakra in IE9 and later)
  • Mozilla Firefox: Gecko + SpiderMonkey
  • Google Chrome: WebKit + V8
  • Opera Software Opera: Presto + Carakan

    1.下载GeckoFX控件


    (1)GeckoFX 1.9.1: https://code.google.com/p/geckofx/

    这是Gecko的.NET封装库,我们的.NET程序就是通过调用里边的API,才能跟Gecko沟通的。


    (2)XULRunner: http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/

    这是一个Mozilla所创作的软件运行环境(runtime environment),跟Adobe的AIR作用差不多,那当然就比不上Microsoft的.NET Framework啦。它里边已经集成了Gecko和SpiderMonkey,用起来挺方便的。



    2.加入GeckoFX Broswer控件


    解压GeckoFX文件后,把里面的dll都加进程序。你会看到一个叫GeckoWebBrowser的控件,如下图所示。


    (图一)把GeckoWebBrowser控件加到程序里。



    3.编译,运行


    把所需代码写好,我们现在就来看看编译和运行的效果吧。


    (图二)示范程序的起始页面:显示当前browser的主要信息。


    可以看到,这个XULRunner的Gecko版本是1.9.1.2(甭管那个“Mozilla 5.0”)。啊?不是吧?!太旧了!最新版都已经是是27.x.x.x以上了。但是,作为一个简单的demo,请见谅。重要的是,对于HTML5那些东东的支持度,它要比IE8好多少呢?



    4.PK HTML5的支持度


    一如所料,尽管这个Gecko的版本是很旧,但是分数上也比IE8高2倍。当然,比较近期的Chrome31,得分是最高的。


    (图三)Gecko1.9.1.2得分:155。


    (图四)IE8得分:43。


    (图五)Chrome31得分:503。



    5.总结


    我就简单地总结一下:don't use the default WebBrowser control in XP :) Thanks.