Я пишу расширение chrome, и я изо всех сил пытаюсь передать объект с главной страницы на контекстный скрипт. Кажется, я не могу получить доступ к переменным окна.Расширение Chrome - Передача объекта из контекстного скрипта страницы
ContextScript
//STORE DATA TO CHROME STORAGE ON EVENT
//create hidden input
var hiddenInput = document.createElement("input");
hiddenInput.setAttribute("type", "text");
hiddenInput.setAttribute("id", "__HIDDEN__RESULT__");
//add input to page
var currentItem = document.body.appendChild(hiddenInput);
//event to be fired on click
currentItem.onclick = function() {
//get the global variable window.listOfCourses and stick it in storage
chrome.storage.local.set({'dataVault' : window.listOfCourses});
};
//inject script into page
var s = document.createElement("script");
s.src = chrome.extension.getURL("gradebook.js");
s.onload = function() {this.parentNode.removeChild(this);};
(document.head||document.documentElement).appendChild(s);
Введенный Script
function processData()
{
window.listOfCourses = [];
for (i=0; i < window.completedData.length; i++)
{
//get data and add to window.listOfCourses
}
var myElement = document.getElementById("__HIDDEN__RESULT__")
myElement.click();
}
Внедренный скрипт извлекает информацию из страницы, вставляет его в объекте установить в качестве глобальной переменной, а затем, наконец, он запускает OnClick событие для ввода.
Все это работает. Однако, когда событие вызывает событие, он запускает currentItem.onclick() и пытается получить доступ к окну.listOfCourses, он не видит переменную. Я смущен, почему я больше не могу видеть свои глобальные переменные.
Любая помощь была бы принята с благодарностью!
Спасибо Xan, это именно то, что я искал! – chris75898