Senast redigerat
Löste problemet själv
Visa signatur
Min GitHub: https://github.com/lassekongo83
Jag håller på att skriva mig ett litet webbläsartillägg, men har kört fast när det kommer till att få mina inställningar till att faktiskt göra något.
Min options.js:
// Saves options to extensionApi.storage
function save_options() {
const testOne = document.getElementById('test1').checked;
const testTwo = document.getElementById('test2').checked;
browser.storage.sync.set({
testOne: testOne,
testTwo: testTwo
});
}
// Restores select box and checkbox state using the preferences
function restore_options() {
browser.storage.sync.get({
testOne: true,
testTwo: true
}, function(items) {
document.getElementById('test1').checked = items.testOne;
document.getElementById('test2').checked = items.testTwo;
});
}
document.addEventListener('DOMContentLoaded', function () {
restore_options();
document.getElementById("test1").addEventListener('click', save_options);
document.getElementById("test2").addEventListener('click', save_options);
});
Den fungerar som det ska. Men nu vill jag faktiskt få mina checkboxar att aktivera/inaktivera ett par content scripts (inställningar) till webbsidan jag valt i min manifest.json:
"content_scripts": [
{
"matches": ["https://*.youtube.com/*"],
"js": ["content.js"]
}
]
Min content.js:
// aktivera denna om checkbox test1 är checked
(function() {
alert("Test 1 aktiverat");
})();
// aktivera denna om checkbox test2 är checked
(function() {
console.log("Test 2 aktiverat");
})();
Hur gör jag så att mina checkboxar länkar till dessa två och aktiverar/avaktiverar dem?
---
EDIT: Löste det med detta i content.js:
function testEtt(){
browser.storage.sync.get({
testOne: true
},
function(settings) {
if (true === settings.testOne) {
alert("Test 1 aktiverat");
} else {
// Gör inget
}
});
}
browser.storage.onChanged.addListener(testEtt);
testEtt();
Min GitHub: https://github.com/lassekongo83
Spelnyheter från FZ
Copyright © 1999–2025 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.