这几天断断续续的在学习XUL,不过由于年底了,各种聚会非常的多,基本是天天晚上有聚会,今天稍微好一点。我的XUL学习没有按照limodou的教程一步一步的来,而是根据他的一个回复里面的MAB例子来进行的,因为我感觉MAB简直就是学习的精品,不单涉及到XUL,主要还是含有xmlhttp的精髓在里面。

mab中,大量的使用了overlay,使得复杂的界面设计对于主文件来说变得狠简单,狠容易读懂,这也就是适合于初学者学习的原因。不过这个例子的内容确实狠全面的,而且也不是狠容易上手。刚开始的时候,就被他的overlay搞得迷迷糊糊的,其实你只要把他看成是C++里面的文件之间的函数调用就行了。

在a.xul文件中要调用b.xul文件的func块,那么你得先包含b.xul。不过这个包含不是C++里面的include,而是xul-overlay。参考MAB里面的例子:,所遵循的语法是xml的标准语法,只是标签是专有的而已。href后面跟着的是XUL文件的相对调用文件的路径。在b.xul文件中,除了XML标准头()之外,在:http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">之前只允许DTD块存在,可以参考mab文件的overlay文件。接下来就是你要定义的“函数”了。我在例子中定义了:

 
     
 

 
   
     
       
     

     
       
         
           
         

       

       
         
           
         

       

     

   
 

在文件的结尾还是需要使用:来关闭overlay的。定义好了“函数”,我们就可以在a.xul文件中调用了,因为我们已经包含了b.xul,所以只要在使用的地方,直接调用所要用的模块的id即可。我的调用方式是:。这样浏览器显示的结果和原先的没有使用overlay的方式是一样的,只是对以后代码的维护和初学者的学习更加方便和容易。