获取executeScript中变量集的值

Obtaining the value of a variable set in executeScript

本文关键字:变量 executeScript 获取      更新时间:2023-09-26

在创建Google Chrome扩展时,我有一些代码必须保留在一个单独的javascript文件中:

separate.js
-----------
var x = "some dynamic value";
var y = "another dynamic value";
return x;

我想从这个代码中获得x的值,并将其包含在我的后台页面中:

background.html
-----------
<!DOCTYPE html>
<html>
  <head><script src="code.js"></script></head>
</html>

_

code.js
-----------
chrome.tabs.executeScript(null, {file:"separate.js"}, function() {});

如何在separate.js(比如y)中检索变量集?有没有一种方法可以使用executeScript()来获取脚本的返回值?

在您的code.js(由您的扩展注入)上,使用chrome.extension.sendRequest:

var y = "variable to send";
function f_callback(response) {
    alert(response);
}
chrome.extension.sendRequest({y: y}, f_callback); //<-- Trigger

separate.js(在background.html),使用chrome.extension.onRequest:

function listener(o_request, o_sender, f_callback) {
    // This function is triggered by the function, see above
    alert(o_request.y); //<---y
    f_callback("Done something"); //<-- Calls callback. Can only be done once!
}
chrome.extension.onRequest.addListener(listener);