Chrome. Tabs. ExecuteScript változó lekérése hogyan?
Van egy google kiegészítőm és van egy oldal, ahol van egy object változóm.
pl.: var obj = {a : 0, b : 1};
Ha csinálok egy ilyen scriptet:
chrome.tabs.executeScript(null, {file: "file.js"});
Majd a "file.js" tartalma egyszerűen ennyi:
alert(typeof obj);
obj["c"] = 2;
Az alert-be azt írja, hogy undefined és az obj változót nem fogja találni, így nem is fogja tudni a c -t és annak értékét belerakni.
Tehát a chrome.storage.local API pl. alkalmas erre, de megoldhatod chrome.tabs.sendMessage/chrome.runtime.onMessage vagy JSON.stringify használatával is. Nem csoda, hogy nem elérhető a változó az executescripten belül, mert tök más szálon futnak.
Azt hiszem megoldottam:
function inject() {
//A script tartalma
}
var iscript = document.createElement("script");
iscript.appendChild(document.createTextNode("(" + inject +")();"));
(document.body || document.head || document.documentElement).appendChild(iscript);
Ezt a megoldást találtam rá. Nagyon szépen köszönöm.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!