Ich habe eine Chrome-Erweiterung mit Optionen, die über das Tag options_ui
in manifest.json festgelegt werden. Ich kann Optionen speichern, aber ich bemerkte, dass die Optionen Modal für die chrome.storage.sync.set
Funktion geschlossen werden müssen, um die Optionen zu speichern. Wie erzwinge ich das Speichern der Optionen beim Klicken auf "Speichern", auch wenn das Optionsmodal nicht geschlossen ist?Speichern von Chrome-Erweiterungsoptionen ohne Schließen von Optionen Modal
options.js:
function save_options() {
var hideAds = document.getElementById('hideAds').checked;
chrome.storage.sync.set({
hideAds: hideAds
}, function() {
// Update status to let user know options were saved
var status = document.getElementById('status');
status.textContent = 'Options successfully saved...';
setTimeout(function() {
status.textContent = '';
}, 1000);
});
}
// Restores checkbox state using the preferences stored in chrome.storage.
function restore_options() {
// Use default values
chrome.storage.sync.get({
hideAds: false
}, function(items) {
document.getElementById('hideAds').checked = items.hideAds;
});
}
document.addEventListener('DOMContentLoaded', restore_options);
document.getElementById('save').addEventListener('click', save_options);
manifest.json:
{
"name": "Redesign",
"version": "1.0",
"manifest_version": 2,
"options_ui": {
"page": "options.html",
"chrome_style": true
}
}
EDIT: Hinzufügen background.js Code unten, dass nicht bekommen neuesten Optionen (nach auf die Schaltfläche Speichern klicken Options-Seite), sofern die Option modal nicht geschlossen ist. Die Zeile alert
gibt den alten gespeicherten Optionswert und den neuen gespeicherten Wert erst aus, nachdem das Optionsmodal geschlossen wurde.
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
if (info.status == 'complete') {
chrome.storage.sync.get(['hideAds'], function(items) {
if(typeof items.hideAds !== 'undefined') {
hideAds = items.hideAds;
alert(hideAds);
}
})
doSomething(tab);
}
});
Warum denken Sie, Die Optionen werden erst gespeichert, wenn Sie das Modal schließen. –
Der obige background.js-Code wurde hinzugefügt, der den alten Optionswert ausgibt, bis das modale Fenster der Optionen geschlossen wird. – zeeshan