如何获取/设置扩展程序中图片的全局Google Chrome内容设置?

时间:2012-05-14 20:26:51

标签: javascript google-chrome google-chrome-extension

我已经为Google Chrome编写了一个扩展程序,可以使用“浏览器操作”按钮切换图像加载和关闭。

它可以工作,但到目前为止我只能通过URL设置并获取特定页面的值。这些设置显示在设置>的管理例外... 按钮下。在Bonnet>下隐私>内容设置...>图片部分。例如,

chrome.contentSettings['images'].get({
    'primaryUrl': 'http://www.example.com/*',
    'incognito': false
},
function(details) {
    console.log('Show images: ' + details.setting);
});

将输出消息“显示图像:允许”或“显示图像:块”。

但我希望能够打开和关闭全局设置。因此,我需要知道设置>下的值是“显示所有图像(推荐)”还是“不显示任何图像”在Bonnet>下隐私>内容设置...>图片,即允许阻止默认

primaryUrl使用通配符的各种尝试(如下所示)会引发错误:

chrome.contentSettings['images'].get({
    'primaryUrl': '*://*/*',
    'incognito': false
},
function(details) {
    console.log('Show images: ' + details.setting);
});

ERROR:

'Error during contentSettings.get: The URL "*://*/*" is invalid.'

引用Content SettingsMatch Patterns让我觉得我需要使用特殊的<all_urls>模式,但我也会遇到错误。

1 个答案:

答案 0 :(得分:2)

对于contentSettings.get,您可以使用“http:// *”或当前标签的网址。 '<all_urls>'适用于contentSettings.set中的primaryPattern。

function toggleImages(tab) {

    chrome.contentSettings['images'].get({
        primaryUrl: tab.url
    }, function (details) {
        chrome.contentSettings['images'].set({
            primaryPattern: '<all_urls>',
            setting: details.setting == 'allow' ? 'block' : 'allow'
        })
    });

}

chrome.browserAction.onClicked.addListener(toggleImages);