Получить абсолютный URL из относительного URL в расширении Firefox?

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

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

1 ответ

Решение

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

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

href свойство ссылки (не 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,

Другие вопросы по тегам