やりたいこと
Twitterをすでに開いているかどうかを判定したいです。
###アプローチ
現在開いているすべてのタブ情報を取得し、そのURLに正規表現をかけて「https://twitter.com」から始まるものがあればTwitterを開いていると判断しようかと思っています。
###困っていること
非同期関数への理解不足で思ったように変数にタブ情報を格納できません。
コード
このコードだとコンソールには「undefined」が表示されます。
JavaScript
let tabInfo; function getTabInfo() { let regexp = /^https:\/\/twitter.com/ let targetTab; chrome.tabs.query({}, tabs => { targetTab = tabs.find(tab => regexp.test(tab.url)); }) return targetTab; } tabInfo = getTabInfo(); console.log(tabInfo);
ちなみに
JavaScript
chrome.tabs.query({}, tabs => { targetTab = tabs.find(tab => console.log(tab.url)); })
とするとURLの情報がコンソールに表示されることからタブ情報は取れてはいるんだと思います。
まだ回答がついていません
会員登録して回答してみよう