3

我为 Google Chrome 编写了一个扩展程序,以使用浏览器操作按钮打开和关闭图像的加载。

它有效,但到目前为止我只能通过 URL 设置和获取特定页面的值。这些设置显示在Settings > Under the Bonnet > Privacy > Content Settings... > Images部分的Manage exceptions...按钮下。例如,

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

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

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

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

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

错误:

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

引用内容设置匹配模式让我认为我需要使用特殊<all_urls>模式,但我也遇到了错误。

4

1 回答 1

2

对于 contentSettings.get,您可以使用“http://*”或当前选项卡的 url。'<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);
于 2014-03-30T22:04:08.077 回答