gpt4 book ai didi

javascript - Firefox WebExtensions API 如何对当前选项卡网站进行 AJAX 调用

转载 作者:行者123 更新时间:2023-11-29 21:04:08 25 4
gpt4 key购买 nike

我希望我的 Web 扩展程序对用户当前正在查看的网站进行 AJAX 调用。我知道当前网站在 /foo/bar?query= 处有可用的端点。

有什么东西阻止我使用 fetch APIXMLHttpRequest联系这个端点?

我尝试使用这些方法只是告诉我发生了服务器错误,而在我尝试调试我的扩展程序时网络选项卡中没有显示任何内容。我觉得这个任务应该有一个 WebExtensions API,但我找不到。

最佳答案

您可以使用 browser.tabs.getCurrent() 获取描述用户正在查看的当前选项卡的对象.这个对象有一个属性 url ,然后您可以使用它来生成 XMLHttpRequest。

browser.tabs.getCurrent().then(currentTab => {
let xhr = new XMLHttpRequest();
xhr.open("GET", currentTab.url);
// ...
});

编辑:
正如 Makyen 所指出的,tabs.currentTab实际上不是你想要的。相反 tabs.queryactive: true应该使用。类似的东西应该可以工作:

browser.tabs.query({active: true, currentWindow: true}).then(tabs => {
let currentTab = tabs[0];
let xhr = new XMLHttpRequest();
xhr.open("GET", currentTab.url);
// ...
})

为了发出跨源请求,您需要在 manifest.json 中获得许可文件:

{
...
"permissions": [
"tabs",
"<all_urls>"
],
...
}

<all_urls>例如将允许您向任何 url 发出 http 请求。

您可以阅读更多here .

关于javascript - Firefox WebExtensions API 如何对当前选项卡网站进行 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44907697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com