1、xulrunner下载、配置、编译、执行全过程:
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk
(将client.mk checkout到当前路径mozilla目录下)
cd mozilla
make -f client.mk checkout MOZ_CO_PROJECT=xulrunner
edit mozilla/.mozconfig as follows:(创建.mozconfig文件)
. $topsrcdir/xulrunner/config/mozconfig
mk_add_options MOZ_OBJDIR=/home/ghost/door/release
ac_add_options --disable-javaxpcom
ac_add_options -enable-webservices(和服务器交互)
make -f client.mk build
set DISPLAY as export DISPLAY=:0.0
set LD_LIBRARY_PATH=/home/ghost/door/release/lib
执行:
#(xulrunner所在目录)xulrunner(项目所在目录)/application.ini
如:/root/mozilla/dist/bin/xulrunner /home/ghost/application.ini
附:firefox编译(和xulrunner类似)
make -f client.mk checkout MOZ_CO_PROJECT=browser
创建.mozconfig文件:
mk_add_options MOZ_CO_OBJDIR=/home/compile/lib
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
拷贝上述文件到/mozilla目录下:make -f client.mk build
检测新编译的firefox:
$/home/compile/lib/dist/bin/firefox
(刚编译的firefox不支持flash,在路径/home/compile/lib/dist/bin的plugins目录下加入libflashplayer.so,在components目录下加入flashplayer.xpt后可支持flash).
2、XUL项目文件结构:
项目名称:
Application.ini:
描述项目基本信息:项目名、版本信息、开发者、Gecko最高最低版本。
Application.ini文件内容如下:
[App]
Vendor=
Name=xulrunnerapp
Version=1.0
BuildID=20071114
[Gecko]
MinVersion=1.8
MaxVersion=2.0
Chrome文件夹:
Content文件夹:
*.js,*.xul(允许有多个后缀相同的文件,主XUL文件名称和项目名称相同)
Skin文件夹:
*.css和图片文件
Local文件夹: 全球化相关文件
包括*.dtd,*.rdf,*.property文件
DTD(Document Type Definition,文档类型定义)是XML中常用的文件,它一般是用来定义XML中的元素规则,还可以用来定义XML中出现的实体(entity)元素。
属性文件是给脚本使用的。
Chrome.manifest:(XUL文件的映射)
content xulrunner file:applicationName/
Default文件夹:
Preferences文件夹:
Prefs.js
文件内容如下:
pref("toolkit.defaultChromeURI", "chrome://xulrunner/content/main.xul");
Extention文件夹:
Update文件夹:
3、*.xul文件直接链接网页方法:
1、
2、
3、要*.js文件中实现:
Window.open("< ",NULL,NULL);(弹出一新窗口)
4、*.js文件调用*.xul文件的变量,不采用参数传递的方法:
Document.getElementById('参数名').value;
5、*.js字符串连接:
string1.concat(string2);
6、XMLHttpRequest头:
第一次发送时为:
Netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");(可省)
xmlhttp.open("POST","<",true);
xmlhttp.setRequestHeader("SOAPAction","");
xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");
xmlhttp.setRequestHeader("Connection","close");
第二次发送时:
SOAPAction变为"<",其余各项未变。
7、XMLHttpRequest.send()中:
xmlhttp1.send(""+"\n\n"+" ' xmlns:SOAP-ENV=""'+
' xmlns:SOAP-ENC=""'+
' xmlns:xsi=""'+
' xmlns:xsd=""'+
' xmlns:ns1="">'+
''+
''+
''+
''+
reUserid+
''+
''+
''+
'');
SOAP封装的名域标志符是<>
SOAP的编码规则的名域标志符是<>
8、服务器回传正确条件:
If(xmlhttp.readyState==4&&xmlhttp.status==200)
readyState 所有可能的值如下:
* 0 (还没开始)
* 1 (读取中)
* 2 (已读取)
* 3 (资讯交换中)
* 4 (一切完成)
接下来要检查服务器传回的 HTTP 状态码status
9、解析response,得到某一标签的值:
var msg=xmlhttp.responseXML;
msg.getElementsByTagName("标签")[i].firstChild.value;
如果标签值各不相同,则i取值0,如若有相同的,则处理i
若采用文本方式接收:
Var msg=xmlhttp.responseTEXT;
alert(msg);//以字符串形式出现,responseXML无法以此方式显示
10、和服务器交互时的同步和异步问题:在open方法中实现:
XMLHttpRequest.open("POST","",false);
第三个参数:true表同步,false表异步。
11、XUL定制浏览器窗口(window元素):
标题栏:title
屏幕大小:标题栏隐藏hidechrome="true",width,height,screenX,screenY
sizemode:三选一(窗口大小):
maximized:
minimized:
normal:
窗口类型:windowtype
12、在JS文件中实现页面的打开:
window.location(url); url既可以是常量,也可以是变量(由responseXML解析出来)
13、文本框、按钮居中方法:
采用h/vbox的方法,属性pack="center"
文本框长度控制:
style="max-width: 150px;"
14、XulRunner支持flash插件:
在项目文件目录下增加两个目录:components和plugins,将flashplayer.xpt拷贝到components目录下,将libflashplayer.so拷贝到plugins目录下。
附:
15、扩展和插件的区别:
Extensions are small add-ons that add new functionality to your Mozilla program. Plugins are programs that allow websites to provide content to you and have it appear in your browser.(扩展是能够给Mozilla增加一些新功能的附加软件,插件是允许网站向你提供内容并在浏览器中显示的程序)。通俗的讲,"扩展"是基 于Firefox本身增加的一些实用功能,而"插件"则是在Firefox之外独立编写的程序,用于显示网页中的特定内容如Flash、视频等。
16、Flash MIME type:
application/x-shockwave-flash
17、webrunner(windows platform)
cd C:\program files\WebRunner\
webrunner.exe -uri <>
18、*.rdf文件:(在content,skin,local目录下)
RDF 是用机器可读格式描述数据的 XML 文件, Mozilla 程序包必须有一个清单来描述它们的内容并可以注册它们到 Mozilla.
19、5、在XMLHttpRequest消息包中传递参数:
<>变量名>
附:编译xulrunner简易方法:
a.首先建立mozilla目录
b.设置环境: export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
c: 从cvs取代码
cvs login 密码是:anonymous
cvs checkout mozilla/client.mk
cd mozilla
make -f client.mk checkout MOZ_CO_PROJECT=xulrunner
d.编译代码
创建.mozconfig文件,文件内容是:
export MOZILLA_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
ac_add_options --enable-application=xulrunner
ac_add_options --enable-debug
ac_add_options --disable-optimize
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --disable-freetype2
./configure
make
make install
e.运行例子
cd dist/xpi-stage
xulrunner simple/application.ini
可以看到会弹出一个小小的窗口,点击按钮,可以将输入框的数字加1.
xulrunner加入vlc插件的方法(win平台):
xulrunner目录下的plugins目录存放的是VLC库(这些库可以在安装VLC后的安装目录中找到),部分库可以去除,视播放视频情况而定.应用程序里的plugins目录存放的是:axvlc.dll,libvlc.dll,npvlc.dll.
阅读(2317) | 评论(0) | 转发(0) |