I'm learning how to make Chrome extensions, and I'm having problems attaching a script to the popup.html
.
The foreground.js
stores some words which I'm calling labels
in the local storage using chrome.storage.local.set()
. What I want the popup page to do is simply show these labels.
I know the labels are getting stored, as I've debugged that process and it works fine.
The popup.js
code:
function displayLabels(){
var labels = [];
chrome.storage.local.get("labels",value=>{
labels=value.labels
});
console.log(labels)
var mainDiv = document.getElementById("mainDiv")
for(var i=0;i<labels.length;i++){
var mainDiv = document.getElementById("mainDiv")
var textBox = document.createElement("h5")
textBox.innerText = `Label${i}: ${labels[i]}`
mainDiv.appendChild(textBox)
}
}
document.onload=(event)=>{
displayLabels()
}
//window.onload=(event)=>{
// displayLabels()
//}
And the popup.html
code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="popup.js"></script>
</head>
<body>
<div id="mainDiv">
</div>
</body>
</html>
I have checked the spelling of the key labels
while storing it, it is correct. I have also set the storage permission in the manifest.json
The displayLabels()
function does not get called. I tried a simple console.log("hello")
in the first line of displayLabels()
too, but that also did not work.