我已经为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 Settings和Match Patterns让我觉得我需要使用特殊的<all_urls>
模式,但我也会遇到错误。
答案 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);