1
在我的一个组件中,当组件加载时,我希望我的扩展将脚本注入到运行扩展的当前选项卡中。该脚本实质上获取源代码并将其保存为字符串。如何在反应中使用tabs.executeScript
所以,在我componentWillMount
我试图注入脚本以下列方式...
componentWillMount() {
var result = '';
chrome.tabs.executeScript(null, {
file: './js/scripts/getPageSource.js'
}, function() {
// If you try and inject into an extensions page or the webstore/NTP you'll get an error
if (chrome.runtime.lastError) {
result = 'There was an error injecting script : \n' + chrome.runtime.lastError.message;
}
});
}
我的脚本的路径,./js/scripts/getPageSource.js
是相对于我的index.html
文件正在使用我的应用程序的反应。
我得到的错误文件没有找到,所以我改变了相对于组件的路径,但我仍然找不到文件。
我在想也许这不是正确的方式注入一个脚本到反应的开放标签,有没有更好的方式做到这一点?
编辑
这是我manifest.json
文件...
{
"name": "Get pages source",
"version": "1.0",
"manifest_version": 2,
"description": "Get pages source from a popup",
"browser_action": {
"default_popup": "src/index.html"
},
"permissions": ["tabs", "<all_urls>"]
}
我的路径./js/scripts/getPageSource.js
位于我src
文件夹内被上述
@Makyen如果你需要我补充清单文件和脚本调用,我可以这样做。但我的主要问题是我试图注入一个脚本,并没有被调用。据我所知,你不需要知道剧本对你的作用是什么? – Bolboa
@Makyen好吧我添加了它 – Bolboa