Получение значения переменной, установленной в executeScript - PullRequest
2 голосов
/ 05 января 2012

При создании расширения 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() {});

Как мне получить набор переменных в файле отдельный.js (скажем, у)?Есть ли способ использовать executeScript (), чтобы получить возвращаемое значение скрипта?

1 Ответ

2 голосов
/ 05 января 2012

На вашем 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);
...