通知我的content_script.js设置更改的正确方式是什么?
当我将设置写入localStorage时,我希望对内容脚本执行sendMessage/sendRequest,这样它就可以相应地应用它们。
我必须执行options.js > background.js > content_script.js
有什么想法?
options.js
$('#add-filter-button')
.button()
.click(function(event) {
event.preventDefault();
var userFilters = new Array();
var newFilter = $('#add-filter').val();
if (newFilter !== undefined && newFilter.length > 0) {
$('#filters-box').append(new Option(newFilter, newFilter));
$('#add-filter').val('');
$('#filters-box option').each(function() {
userFilters.push( $(this).text() );
});
localStorage['userFilters'] = JSON.stringify(userFilters);
chrome.storage.sync.set({'userFilters': userFilters});
}
});content.js
chrome.storage.onChanged.addListener(function(changes, namespace) {
for (key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
});发布于 2013-02-08 13:30:49
使用chrome.storage.local https://developer.chrome.com/extensions/storage.html
它有event onChanged
例如:
settings.js
chrome.storage.sync.set({'value': theValue});content.js
chrome.storage.onChanged.addListener(function(changes, namespace) {
for (key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
});https://stackoverflow.com/questions/14765434
复制相似问题