質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

Q&A

1回答

655閲覧

chrome拡張機能でcookieの属性を取得する方法

george0304

総合スコア0

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

0グッド

1クリップ

投稿2022/11/01 05:25

前提

cookieを取得し、属性を取り出し、条件に合ったもののcookieのsizeを計算するchrome拡張機能を製作しています。

拡張機能がver2で製作しています。

実現したいこと

chrome.cookies.getというAPIを使用し、取得した属性を関数の外で使用したいです。
有識者の方、よろしくお願いいたします。

発生している問題・エラーメッセージ

関数外で取得したい値(expiration1)がundefinedと表示されてしまいます。

該当のソースコード

function getCookies(url,name)
{
chrome.cookies.get({"url":url,"name":name}, function(cookie){
return cookie.expirationDate;
});
}

const expiration1 = getCookies("該当のurl","cookieのname");
alert(expiration1);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

george0304

2022/11/01 09:48

すいません拝見しましたが、よく分かりませんでした。
guest

回答1

0

chrome.cookies.getという関数自体が非同期なので、通常の返り値として値を得る方法はありません

Promiseとして引き回してawitで受け取るなどは可能です。

投稿2022/11/01 05:39

maisumakun

総合スコア145192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

george0304

2022/11/01 05:43

ご返信ありがとうございます。 分かりました。やってみたいと思います。
george0304

2022/11/01 07:28

function checkCookie(url, name){ return new Promise((resolve, reject) => { chrome.cookies.get({url: url,name: name}, function (cookie) { if (cookie) { resolve(cookie.expirarionDate) } else { reject(0); } }) }); } expiration = checkCookie(details.url,exclusion); alert(expiration); このように変更した所、alertに[object Promise]と表示されてしまいました。 改善点はありますでしょうか、よろしくお願いします。
maisumakun

2022/11/01 08:05

> このように変更した所、alertに[object Promise]と表示されてしまいました。 メッセージの通り、Promiseが帰ってきますので、受け取る側でawaitを使う、あるいはthenのコールバックで処理するなどが必要です。
george0304

2022/11/01 08:42

どのようにするか、プログラムを教えていただくことは可能でしょうか?
maisumakun

2022/11/01 08:45

expiration.then(value => alert(value));
george0304

2022/11/01 09:17

function checkCookie(url, name){ return new Promise((resolve, reject) => { chrome.cookies.get({url: url,name: name}, function (cookie) { if (cookie) { resolve(cookie.expirarionDate) } else { reject(0); } }) }); } expiration = checkCookie(details.url,exclusion2); expiration.then(value => alert(value)); このように変更したところ、undefinedち表示されてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問