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

发布于 2024-12-14 03:34:50 字数 90 浏览 2 评论 0原文

在我的 FF 扩展中,我想获取页面中所有链接的绝对 URL。我知道JS可以做到这一点。但我想知道是否有任何 FF 服务可以做到这一点。

感谢您的帮助。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

壹場煙雨 2024-12-21 03:34:50

首先,获取链接的绝对 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 进行解析代码>.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文