gpt4 book ai didi

javascript - 如何获取 firefox web 扩展中当前选项卡的标题?

转载 作者:行者123 更新时间:2023-11-29 16:37:42 26 4
gpt4 key购买 nike

我正在尝试编写一个简单的 firefox 扩展程序,在按下扩展程序的按钮时显示用户正在查看的当前选项卡的标题。

这是我的 manifest.json 文件:

{

"manifest_version": 2,
"name": "Perspective",
"version": "1.0",

"description": "Displays current tab title when clicked",

"permissions": [
"tabs"
],

"icons": {
"48": "icons/border-48.png"
},

"browser_action": {
"browser_style": true,
"default_popup": "popup/choose_page.html",
"default_icon": {
"16": "icons/news-icon-16.png",
"32": "icons/news-icon-32.png"
}
}
}

而且,这是我的 choose_page.js 文件

//Fetch the title of the active tab
console.log("-----------Button Clicked------------");
var activeTab = browser.tabs.query({active: true, currentWindow: true});
console.log("---------Printing type of variable \"activeTab\"");
if (typeof activeTab == "undefined")
console.log("The object is undefined")
else
console.log("The type of activeTab is:" + typeof activeTab)

console.log("The title of activeTab is:")
console.log(activeTab.title);

每当我点击我的扩展程序按钮时,我都会在控制台中得到以下输出:

-----------Button Clicked------------

---------Printing type of variable "activeTab"

The type of activeTab is:object

The title of activeTab is:

undefined

为什么未定义“activeTab”的标题,我如何实际获取用户正在查看的当前选项卡的标题?

这是扩展中所有文件的链接:https://drive.google.com/file/d/1L7vho9iSL9nX2LKBmCveJvODmKQBlqX9/view?usp=sharing

最佳答案

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/query

This is an asynchronous function that returns a Promise.

您必须先等待 promise 的解析。尝试这样的事情:

browser.tabs.query({active: true, currentWindow: true})
.then(tabs => {
for (const tab of tabs) {
console.log(tab.title);
}
});

您的 activeTab 变量不是事件选项卡,而是您需要等待解析的 promise 。此外,当 promise 解析时,它会为您提供一个 array 选项卡,而不是单个选项卡。

关于javascript - 如何获取 firefox web 扩展中当前选项卡的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49584830/

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