首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展options.js通知content_script.js设置更改

Chrome扩展options.js通知content_script.js设置更改
EN

Stack Overflow用户
提问于 2013-02-08 11:57:05
回答 1查看 545关注 0票数 2

通知我的content_script.js设置更改的正确方式是什么?

当我将设置写入localStorage时,我希望对内容脚本执行sendMessage/sendRequest,这样它就可以相应地应用它们。

我必须执行options.js > background.js > content_script.js

有什么想法?

options.js

代码语言:javascript
复制
$('#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

代码语言:javascript
复制
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);
        }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 13:30:49

使用chrome.storage.local https://developer.chrome.com/extensions/storage.html

它有event onChanged

例如:

settings.js

代码语言:javascript
复制
chrome.storage.sync.set({'value': theValue});

content.js

代码语言:javascript
复制
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);
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14765434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档