gpt4 book ai didi

javascript - 使用 activeTab 权限与

转载 作者:行者123 更新时间:2023-12-04 11:15:30 30 4
gpt4 key购买 nike

我有一个使用 content_script 声明式指定的扩展:

list .json:

"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"],
"run_at": "document_end"
}
],

我通过指定 activeTab 权限来阅读它,它不会在安装过程中提醒权限:

https://developer.chrome.com/extensions/activeTab

我的问题是:你怎么能切换到使用
"permissions":["activeTab"]

从使用 content_scripts?

这是我调用 content_script 的 popup.js 代码:
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, { action: "checkForCode" }, function (response) {
if (!!response) { showResults(response.results); }
});
});

和 content_script 的事件处理程序:
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.action == "checkForCode") {
getCode(request, sender, sendResponse);//method sends callback.
return true;
}
});

这段代码工作得很好,但我想知道如何将它与 activeTab 权限一起使用。我是否应该通过 chrome.tags.executeScript() 添加 content.js,然后以相同的方式引用它?

最佳答案

在您的 manifest.json 中,您需要设置

"permissions": ["activeTab", "tabs"],
"background": {
"scripts": ["content.js"],
"persistent": false
},
你的 content.js 作为例子:
// metaCode will be injected and executed in the current tab
// the returned results you can use in callbackFunction
var metaCode = 'var descr = document.querySelector("meta[name=\'description\']");'
+ 'var keyw = document.querySelector("meta[name=\'keywords\']");'
+ 'if (descr) var descr = descr.getAttribute("content");'
+ 'if (keyw) var keyw = keyw.getAttribute("content");'
+ '({'
+ ' description: descr || "",'
+ ' keywords: keyw || "",'
+ '})';

chrome.tabs.executeScript(
tab.id,
{code: metaCode}, // get meta key words
callbackFunktion
);

function callbackFunktion(results) {

var result = results[0];
var description = result.description;
var keywords = result.keywords;
// and so on ... whatever you want
// to do with results from the
// injected script from 'metaCode'

}

关于javascript - 使用 activeTab 权限与 <all_urls>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51732125/

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