Javascript chrome.tabs.executeScript将值从注入文件返回到background.js
我做了一个chrome扩展,在用户点击图标后运行(浏览器操作)。 用户单击图标后,文件background.js正在运行。它将检查选项卡,我将在选项卡中插入一个js文件 文件background.jsJavascript chrome.tabs.executeScript将值从注入文件返回到background.js,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我做了一个chrome扩展,在用户点击图标后运行(浏览器操作)。 用户单击图标后,文件background.js正在运行。它将检查选项卡,我将在选项卡中插入一个js文件 文件background.js chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.query({'url':"URL TO SEARCH"}, function(tabs) { //console.log(tab
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
我的问题是,添加到do.js以返回简单文本值的代码是什么。我读过这篇文章,但我不明白答案
在manifest.json下面
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs", "http://*/*", "https://*/*","file:///*"
],
"browser_action": {
"default_title": "Mute Hangout",
"default_icon": "icon16.png"
},
"manifest_version": 2
谢谢执行注入脚本时,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
非常感谢它的工作,我花了2个小时在这一点上。。。事实上这很简单…不知道为什么会标记为重复-另一个问题是当使用带有“代码”字符串的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