Получить абсолютный URL из относительного URL в расширении Firefox? - PullRequest
1 голос
/ 08 ноября 2011

В своем расширении FF я хочу получить абсолютный URL-адрес всех ссылок на странице.Я знаю, что это может сделать JS.Но я хочу знать, может ли это быть сделано любым сервисом FF.

Спасибо за помощь.

1 Ответ

2 голосов
/ 09 ноября 2011

Прежде всего, получить абсолютный URL ссылки тривиально:

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

Свойство href ссылки ( not атрибут href) всегдаразрешается автоматически, так что вы получаете абсолютный URL без каких-либо усилий.

Я подозреваю, что вам действительно нужно разрешить относительный 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, относительный URL /test.gif разрешен относительно адреса страницы http://example.com/index.html.

...