1

In my FF extension, I want to get the absolute URL of all the links in a page. I know this can be done by JS. But I want to know whether this can be done by any FF service.

Thanks for help.

Selvaraj M A
  • 3,096
  • 3
  • 30
  • 46

1 Answers1

2

First of all, getting an absolute URL of a link is trivial:

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

The href property of a link (not the href attribute) is always resolved automatically so that you get an absolute URL with no effort whatsoever.

I suspect that what you really want is to resolve a relative URL that you got from somewhere. You use nsIIOService for this:

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);

This example gives you http://example.com/test.gif as result, the relative URL /test.gif has been resolved relative to the page address http://example.com/index.html.

Wladimir Palant
  • 56,865
  • 12
  • 98
  • 126