Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266943
  • 博文数量: 19
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 685
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-30 20:45
文章分类

全部博文(19)

文章存档

2008年(19)

我的朋友

分类:

2008-04-17 17:51:50

用XULRUNNER做了个独立的APP,想界面上加个到网站的链接。发现加了后点击都没反应。想到这样要触发启动个新的进程(IE或者FF等),所以才不工作吧。。
 
查了点MOZILA上的例子,简化出如下的函数,能打开个URL。注意这里我用的参数o是browser对象。
 
JS函数:
 

function cmdGotoURL(o) {
    A = o.contentDocument.getElementById('adlink');
    url = A.getAttribute('href');
    if (! url) return;

    var io = Components.classes['@mozilla.org/network/io-service;1'];
    iosvc = io.getService(Components.interfaces.nsIIOService);
    uri = iosvc.newURI(url, "UTF-8", null);

    extProtoSvc = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].getService(Components.interfaces.nsIExternalProtocolService);
    extProtoSvc.loadUrl(uri);
}

XUL中部分代码:

....

<browser type="content-primary" id="ad" onclick="cmdGotoURL(this)" src="" style="margin:0;padding:0;width:200px;height:50px;overflow:hidden;" />

....

 

这样能在xulrunner里显示test.html。其中test.html的adlink是我需要点的链接,如果该链接为空则不触发点击。

 

这样做还有个问题,就是第一次打开时会询问开启程序。如果想不出现可以这么做,在你的程序目录下的defaults/preferences/prefs.js,修改一下,添加如下一句:

pref("network.protocol-handler.warn-external.http", false);

那之后打开链接时就不会有警告了(WINDOWS下可能还会有警告,未确认)。

阅读(1716) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~