用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下可能还会有警告,未确认)。
阅读(1753) | 评论(0) | 转发(0) |