在我的一个组件中,当加载组件时,我希望我的扩展将脚本注入到运行扩展的当前选项卡中。该脚本基本上获取源代码并将其保存为字符串。
所以,在我的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
文件夹中
答案 0 :(得分:3)
使用与 manfest.json 文件相关的路径。
在Firefox中,相对URL是相对于当前页面URL解析的。在Chrome中,这些网址相对于附加组件的基本网址得到了解析。
从您的 manifest.json ,您的file: 'src/js/scripts/getPageSource.js'
看起来应该是:
ProcessBuilder