I have an extension that changes the value through a class. but it only works in popup.html. I want it to work for all pages. I've tried to change json manifestation but it still dont work. may be problem is in code. help me please =(
Javascript code:
function saveElementState(elementClasses, newValue) {
const savedState = JSON.parse(localStorage.getItem('elementStates')) || {};
savedState[elementClasses] = newValue;
localStorage.setItem('elementStates', JSON.stringify(savedState));
}
function restoreElementStates() {
const savedState = JSON.parse(localStorage.getItem('elementStates')) || {};
for (const elementClasses in savedState) {
const elements = document.getElementsByClassName(elementClasses);
if (elements.length > 0) {
elements[0].textContent = savedState[elementClasses];
}
}
}
document.addEventListener("click", function(event) {
const clickedElement = event.target;
const newValueInput = document.getElementById("newValue");
const newValue = newValueInput.value;
if (clickedElement.classList.contains("saveButton") && newValue !== "") {
const elementClasses = prompt("Enter the element's classes:", "");
if (elementClasses !== null && elementClasses !== "") {
const elements = document.getElementsByClassName(elementClasses);
if (elements.length > 0) {
saveElementState(elementClasses, newValue);
}
}
}
});
document.addEventListener("DOMContentLoaded", function() {
restoreElementStates();
});
const clear = document.getElementById('clear');
clear.addEventListener('click', () => {
localStorage.clear();
});
JSON manifestation:
{
"manifest_version": 2,
"name": "Element Value Changer",
"version": "1.0",
"description": "Change element values and save to local storage",
"permissions": ["activeTab", "storage"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"browser_action": {
"default_popup": "popup.html"
}
}