Подтвердить что ты не робот

Доступ к файлам cookie из расширения Google Chrome

Есть ли способ получить доступ к файлам cookie из расширения Chrome? этот код

document.cookie.length

всегда возвращает - 0.

4b9b3361

Ответ 1

Это первый раз, когда я прочитал что-то действительно не так на этом сайте. Доступ к фактическим файлам cookie с расширением возможно с помощью INDEED.

вам просто нужны эти две вещи в вашем манифесте:

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

ваш файл cookie_handler.js будет выполнен в том же контексте каждой страницы загрузчика /frame/iframe. попробуйте поместить туда одну строку:

alert(document.cookie);

и вы увидите:)

Ответ 2

В настоящее время лучший (самый простой) способ получить файлы cookie сайта в расширении выглядит следующим образом:

chrome.cookies.get({ url: 'http://example.com', name: 'somename' },
  function (cookie) {
    if (cookie) {
      console.log(cookie.value);
    }
    else {
      console.log('Can\'t get cookie! Check the name!');
    }
});

Итак, теперь вам не нужен контент script для этого, но не забудьте включить разрешения в манифест:

"permissions": [
  "cookies",
  "*://*.example.com/*"
]

Ответ 4

Если вы хотите манипулировать информацией о файлах cookie без необходимости посещать сайт (полезно для чего-то вроде FireFox TACO) вы в настоящее время не повезло. Похоже, Google работает над этим: недавно они добавили относительно полный обработчик файлов cookie в экспериментальный API: chrome.experimental.cookies

Надеемся, что это скоро закончит поддержку API.

Ответ 5

Еще лучше, вы можете использовать HTML5 Localstorage:

localStorage.setItem("itemid", "hello" );   // write
value = localStorage.getItem("itemid");     // read

Если вы действительно хотели прочитать куки файлы любого сайта, который пользователь наблюдает, как писал Дэн, это невозможно, так как действительно могут быть плохие вещи.

Все, что вы можете получить со страницы, - это содержимое страницы DOM.