我做了一个chrome扩展程序,在用户点击图标(浏览器操作)后运行。 用户单击图标后,文件background.js正在运行。它将检查选项卡,并在选项卡中注入一个js文件。
档案background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.query({'url':"URL TO SEARCH"}, function(tabs) {
//console.log(tabs[0].id);
chrome.tabs.executeScript(tabs[0].id, {file: "do.js"}, function (test){
console.log(test);
});
});
});
文件do.js做了一些事情(它没有问题),我想在do.js的末尾返回一个值,但是因为我找不到,所以我被困在代码中溶液
do.js
if ( Test1) {
do something;
return ok; //how to do that ????
}else{
do someting;
return not ok; //how to do ???
}
我的问题是什么是添加到do.js以返回简单文本值的代码。我已阅读此question,但我不明白答案。
在manifest.json下面
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs", "http://*/*", "https://*/*","file:///*"
],
"browser_action": {
"default_title": "Mute Hangout",
"default_icon": "icon16.png"
},
"manifest_version": 2
谢谢
答案 0 :(得分:10)
执行注入脚本时,将执行chrome.tabs.executeScript的回调。最后一个语句将作为结果参数传递给回调。
var result;
if (Test1) {
do something
result = "ok";
}else{
do something
result = "not ok";
}
// pls make sure that the result you want to pass to executeScript callback need to be the last statement of the injecting script
result