Чтение файлов cookie браузера в расширении safari - PullRequest
3 голосов
/ 10 января 2012

Я новичок в разработке расширений для сафари.Мне нужен доступ к файлам cookie браузера, относящимся к веб-сайту.Я знаю, что это возможно в разработке расширений Chrome.Как это можно сделать с помощью разработки расширений для сафари.

1 Ответ

3 голосов
/ 19 апреля 2012

Из введенного скрипта вы можете отправить куки на расширение.Поэтому при создании расширения у вас есть global.html и injected.js.

injected.js:

var cookies = document.cookie;
safari.self.tab.dispatchMessage("setCookies",cookies);

global.html (без тегов HTML):

var cookies = null;

function getCookies(incMsg) {
    cookies = incMsg.message;
    alert('I received them :) \n\n'+cookies);
}

safari.application.addEventListener("message",getCookies,false);

Приведенный выше код будет отправлять все файлы cookie на расширение каждый раз, когда вы загружаете страницу.Тогда, конечно, вам все равно нужно зачитать куки.Я использовал что-то вроде следующей функции (в global.html):

function readCookie(name) {
    if(cookies) {
        var nameEQ = name + "=";
        var ca = cookies.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
}

Удачи!

...