我正在编写一个 chrome 扩展,我正在努力将一个对象从主页传递回上下文脚本。我似乎无法访问窗口的变量。
上下文脚本
//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);
注入脚本
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() 并尝试访问 window.listOfCourses 时,它看不到该变量。我很困惑为什么我再也看不到我的全局变量了。
任何帮助将不胜感激!