3

ブラウザー アクション ボタンを使用して画像の読み込みのオンとオフを切り替える Google Chrome の拡張機能を作成しました。

動作しますが、これまでのところ、特定のページの値を URLで設定および取得することしかできません。これらの設定は、 [設定] > [ボンネットの下] > [プライバシー] > [コンテンツ設定...] > [画像]セクションの[例外の管理... ] ボタンの下に表示されます。例えば、

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

「Show images: allow」または「Show images: block」というメッセージが出力されます。

しかし、グローバル設定のオンとオフを切り替えられるようにしたいと思います。したがって、 [設定] > [ボンネットの下] > [プライバシー] > [コンテンツ設定...] > [画像]の値が「すべての画像を表示する (推奨)」または「画像を表示しない」であるかどうかを知る必要がありますデフォルト?

次のように、 にワイルドカードを使用しようとすると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 に答える