最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Removing a cookie from within a Chrome Extension - Stack Overflow

programmeradmin1浏览0评论

I want to remove a Cookie (according to some criteria) from within a Chrome Extension. According to the documentation of chrome.cookies.remove it expects an object with the fields url (The URL associated with the cookie) and name (The name of the cookie to remove).

Now a cookie has the following fields: name, value, domain, hostOnly, path, secure, httpOnly, session, expirationDate, storeId but no url. How do I get the URL of a specific cookie so I can remove it?

For reference one of my cookies looks like this:

domain: ".google"
expirationDate: 1364393586
hostOnly: false
httpOnly: false
name: "PREF"
path: "/"
secure: false
session: false
storeId: "0"
value: "ID=8<snip>u"

I want to remove a Cookie (according to some criteria) from within a Chrome Extension. According to the documentation of chrome.cookies.remove it expects an object with the fields url (The URL associated with the cookie) and name (The name of the cookie to remove).

Now a cookie has the following fields: name, value, domain, hostOnly, path, secure, httpOnly, session, expirationDate, storeId but no url. How do I get the URL of a specific cookie so I can remove it?

For reference one of my cookies looks like this:

domain: ".google."
expirationDate: 1364393586
hostOnly: false
httpOnly: false
name: "PREF"
path: "/"
secure: false
session: false
storeId: "0"
value: "ID=8<snip>u"
Share Improve this question asked Mar 28, 2011 at 14:45 MottiMotti 115k56 gold badges194 silver badges274 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

After some trial and error here's how I get the URL, this seems to work for everything (except perhaps file://)

function extrapolateUrlFromCookie(cookie) {
    var prefix = cookie.secure ? "https://" : "http://";
    if (cookie.domain.charAt(0) == ".")
        prefix += "www";

    return prefix + cookie.domain + cookie.path;
}

I passed http://www.google. as url and it worked. Maybe it just wants any url that matches domain pattern.

chrome.cookies.remove({url:"http://www.google.", name: "PREF"});

(you also need to have domain permission for google.)

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>