有没有办法可以从 Firefox 扩展中的 DOM 以外的页面获取链接?

Is there a way I can get links from pages other than the DOM in a firefox extension?

我正在尝试从其他页面获取链接,但由于它们未加载,我无法执行此类操作。

var urlsFound = [];
var url = "https://www.youtube.com";

for(var i = url.links.length; i --> 0;)
{
    urls.push(url.links[i].href);
}

urlsFound.forEach((item, index) =>
{
    console.log(`${index} : ${item}`);
});

现在当然上面的代码不起作用,但它只是为了更好地说明我正在努力完成的事情。如何在 firefox 扩展中工作时从其他页面获取链接而不将它们加载到 DOM 中?我愿意使用任何可以在 Firefox 扩展中工作的技术。

您需要使用 fetch 或 axios 之类的东西发出 http 请求,然后使用 cheerio 解析 html 并获取链接。这是一个例子。

您可以在此处查看如何使用 axioscheerio

https://www.npmjs.com/package/axios

https://cheerio.js.org/

const axios = require("axios").default; // can use fetch etc.
const cheerio = require("cheerio");

function getLinks(url) {
  return new Promise((resolve, reject) => {
    axios.get(url).then(res => res.data).then(HTML => {
      const $ = cheerio.load(HTML);
      const links = $("a").toArray();
      resolve(links);
    }).catch(err => reject(err));
  });
}