关于XULRunner的文章网上不少,之前虽然用过XULRunner,但仅限于“用”它,并没有研究过它的工作方式、工作原理等,甚至也没有想过做个XUL程序什么的。这两天一直在思索能否将Firebug、Selenium这样的强大的Firefox插件作为独立的程序在XULRunner运行。
由于之前没有写过任何的XUL程序,还是先了解一下XULRunner的工作方式为妙。首先,我做了一个“HelloWorld”,大致明白了一个XUL程序应该长成什么样子。感谢万能的股沟,我找到了一篇介绍“将火狐插件独立成XULRunner应用”的文章(貌似也是网上唯一一篇中文的此类文章)。依照文中的方法,我将SeleniumIDE拿过来一阵捣腾(其实就是写了个application.ini文件而已),然后充满期待的在控制台里敲下了“xulrunner selenium-ide/application.ini”。
等待了数秒后,毫无悬念的,出来一个窗口——里面是错误信息框……,如下:

根据经验,所谓的“Undefined Entity”,应该是因为缺少标签定义(DTD),股沟一把证明网上类似的情形确实因为DTD文件指定有问题。于是打开selenium-ide.jar,找到里面的selenium-ide.xul文件,打开一看,果然引用了XULRunner里面没有的东西“chrome://browser/content/……”,再转到selenium-ide.jar/locale里面的DTD文件,的确没有