92437


javascriptを用いてサイトのcookieをすべて削除できるブックマークレットを作成したいと考えております。(デベロッパーツールのcookieのサイト名を右クリックして出てくる「削除」と同じ動きです。)  
ブラウザのコンソールで動作確認をしている中,

[code]

    console.log(document.cookie); 
    
[/code]

を用いて存在するcookieの確認はできたのですが、それ以降は手つかずの状態です。

[code]

    document.cookie = "name=; max-age=0";
    document.cookie = "name=; expires=Fri, 31 Dec 9999 23:59:59 GMT";
    
[/code]

これらのコードを用いれば良いというところまではわかりましたが、これを実行してももとからサイトで設定されているcookieが削除できません。  
また一律にcookieを削除する方法もわかりません。  
どなたかご教授頂けますと幸いです。

* * *

以下の画像を例に説明させていただきます。  
こちらのcookieは `HttpOnly` 属性はついておりませんし、再設定されるcookieでもありませんが、削除できません。

[![件の画像です](https://i.stack.imgur.com/C5K6A.png)](https://i.stack.imgur.com/C5K6A.png)

* * *

javascriptでDeveloperToolのApplicationタブ、Storage / Cookies
の下のサイト名(このページだとja.stackoverflow.com)を右クリックすると出てくる「削除」を実行できるようなスクリプトを作成したいと思っております。  
単一の指定されたcookieの削除についてはsayuriさんの回答などから把握できましたがが、一括削除については手つかずです。  
どうかご教授の方よろしくお願いいたします。


CC BY-SA 4.0
2022-11-24T09:08:35.097
92407
2022-11-28T12:31:12.340
2022-11-28T12:26:36.753
4236
54864
question
javascript http cookie
javascriptを用いたcookieの削除ができない


> もとからサイトで設定されているcookieが削除できません。

「何を見てこの判断されたのかがよくわかりませんでした。」と指摘しました。どのような操作を行い、cookieが削除できていないと判断したのか、操作方法がわからなければ対処方法も提示できないわけですが、通じなかったのでしょうか？

* * *

とりあず [HTTP Cookie の使用](https://developer.mozilla.org/ja/docs/Web/HTTP/Cookies)
をよく読み理解してください。

例えば、Webサーバーはレスポンスに `Set-Cookie` ヘッダーを含めることでブラウザーに対してcookieを書き込むことができます。更に
`HttpOnly` 属性を含めることでブラウザーに対してJavaScriptからの操作を認めない指定も可能です。

というわけで、 `document.cookie` で見えているものについては質問文の方法で削除可能ですが、その場合は `document.cookie`
は空になるはずですし、Webサーバーからのレスポンスで改めて `Set-Cookie` されれば復活します。

* * *

開発者ツールを参照されているようなので、 **Application** タブの **Storage** / **Cookies** を確認ください。  
cookieは名前だけでなく`domain`と`path`の情報があり、３つ合わせた複合キーになっています。  
例示されました`OptanonConsent`ですと

  * Name: `OptanonConsent`
  * Domain: `.stackoverflow.com`
  * Path: `/`

となっています。このため、`OptanonConsent`を編集するためには

[code]

    document.cookie = "OptanonConsent=;domain=.stackoverflow.com;path=/;";
    
[/code]

と３つのキーを一致させた上で、値を変更してください。削除されるのであれば、max-ageやexpiresなど。

* * *

> 単一の指定されたcookieの削除についてはsayuriさんの回答などから把握できましたがが、一括削除については手つかずです。

残念ながら方法はありません。もちろん、`document.cookie`を参照することで、Name部分を把握することはできますが、DomainとPathを知ることができないため、削除できないです。


CC BY-SA 4.0
2022-11-26T03:35:36.497
92437
2022-11-28T12:31:12.340
2022-11-28T12:31:12.340
4236
4236
92407
answer