3

私は以下を試しましたが、それを操作する方法がわかりません。

マニフェスト.json

  "permissions": [
    "tabs",
    "http://*/*",
    "https://*/*"
  ],
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["cookie.js"]
    }
  ]

cookie.js

console.log(document.cookie);

拡張機能の実際のコンソールではなく、現在のページconsole.logに表示されるだけです。

現在アクセスしているサイトのCookieを取得して、拡張機能のローカルストレージに設定することはできますか?したがって、その時点で、私はどのページにいても、拡張機能には引き続き値があります。

4

1 に答える 1

10

次のスケルトンはそれを達成するのに役立ちます。ここに示すように、すべてのcookie情報をChrome拡張機能のローカルストレージに保存しました。

サンプルコード

ここに画像の説明を入力してください

マニフェスト.json

{
  "name" : "Cookie API Demo",
  "version" : "1",
  "description" : "This is demonstration of Cookie API",
  "permissions": [ "cookies","<all_urls>"],
  "browser_action": {
    "default_icon": "screen.png",
    "default_popup":"popup.html"
  },
  "manifest_version": 2
}

popup.html

<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

popup.js

function cookieinfo(){
    chrome.cookies.getAll({},function (cookie){
        console.log(cookie.length);
        allCookieInfo = "";
        for(i=0;i<cookie.length;i++){
            console.log(JSON.stringify(cookie[i]));

            allCookieInfo = allCookieInfo + JSON.stringify(cookie[i]);
        }
        localStorage.allCookieInfo = allCookieInfo;
    });
}
window.onload=cookieinfo;

その他のAPIについては、これを確認してください

スケルトン現在のページのCookieのみ

ここに示されているように、現在のページにはCookie情報のみが表示されます

ここに画像の説明を入力してください

マニフェスト.json

{
  "name" : "Cookie API Demo",
  "version" : "1",
  "description" : "This is demonstration of Cookie API",
  "permissions": [ "cookies","<all_urls>","tabs"],
  "browser_action": {
    "default_icon": "screen.png",
    "default_popup":"popup.html"
  },
  "manifest_version": 2
}

popup.html

<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

popup.js

function cookieinfo(){

     chrome.tabs.query({"status":"complete","windowId":chrome.windows.WINDOW_ID_CURRENT,"active":true}, function(tab){
            console.log(JSON.stringify(tab));
            chrome.cookies.getAll({"url":tab[0].url},function (cookie){
                console.log(cookie.length);
                allCookieInfo = "";
                for(i=0;i<cookie.length;i++){
                    console.log(JSON.stringify(cookie[i]));

                    allCookieInfo = allCookieInfo + JSON.stringify(cookie[i]);
                }
                localStorage.currentCookieInfo = allCookieInfo;
            });
    });

}
window.onload=cookieinfo;
于 2012-11-28T15:04:33.887 に答える