gpt4 book ai didi

javascript - 无法在 chrome-extension 中从 executeScript 发送数据

转载 作者:行者123 更新时间:2023-11-30 14:46:58 26 4
gpt4 key购买 nike

我正在开发一个 chrome 扩展程序,它可以提取当前选项卡的所有元标记。我使用 ReactJs 作为主要开发环境,并将我的 chrome 相关代码放在它的 componentWillMount() 方法中。

componentWillMount() {
const code =
"let metas = document.getElementsByTagName('meta');" +
"let newMetas = []" +
"for (let meta of metas) {" +
" newMetas.push({name: meta.name, content: meta.content});" +
"}" +
"newMetas;";

chrome.tabs.executeScript(null, {
code: code
}, function (results) {
console.log(results); // <=== Here I get 'null' value
if (!results) {
return;
}
})}

这是我的manifest.json 文件

    {
"manifest_version": 2,
"name": "Northwind",
"description": "Just a simple all with all northwind employees",
"version": "1.0",
"browser_action": {
"default_icon": "./img/ic-logo.png",
"default_popup": "./index.html"
},
"permissions": [
"http://www.amazon.com/",
"tabs"
],
"web_accessible_resources": ["script.js"],
"content_scripts": [{
"matches": ["http://www.amazon.com/*"],
"js": ["app.js"]
}
]
}

app.js 是react生成的构建文件。

我一直在阅读和搜索这个,但没有得到任何关于它为什么不起作用的线索。

另一个问题是,当我将 console.log('done') 放入我的脚本时,它也没有显示,所以我猜配置也有问题。

非常感谢您的帮助。

最佳答案

当您使用 chrome.tabs.executeScript 时,您必须在 list 的 permissions 字段中指定主机。
它叫programmatic injection :

To insert code into a page, your extension must have cross-origin permissions for the page. It also must be able to use the chrome.tabs module. You can get both kinds of permission using the manifest file's permissions field.

关于javascript - 无法在 chrome-extension 中从 executeScript 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763477/

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