从firefox扩展中的相对url获取绝对URL?

时间:2011-11-08 19:08:48

标签: javascript firefox-addon xpcom

在我的FF扩展程序中,我想获取页面中所有链接的绝对URL。我知道这可以由JS完成。但我想知道是否可以通过任何FF服务来完成。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

首先,获取链接的绝对URL很简单:

console.log(doc.links[0].href);

链接的href属性( href属性)始终会自动解析,这样您就可以毫不费力地获得绝对网址。

我怀疑你真正想要的是解决你从某个地方获得的相对URL。您可以使用nsIIOService

var ioService = Components.classes["@mozilla.org/network/io-service;1"]
                          .getService(Components.interfaces.nsIIOService);
var baseURI = ioService.newURI("http://example.com/index.html", null, null);
var absURI = ioService.newURI("/test.gif", null, baseURI);
console.log(absURI.spec);

此示例为您提供http://example.com/test.gif,相对网址/test.gif已相对于网页地址http://example.com/index.html解析。