๋ฐ์ํ
[ localStorage์์ ๋ฐ์ดํฐ ์ป๊ธฐ ]
ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฏธ ์น ํ์ด์ง์์ localStorage์ ์ ์ฅํ๊ณ ์์์! → localStorage ๋ด์ฉ ์ป์ด์ค๊ธฐ
1. ๋ฐ์ดํฐ ๊ฐ์ ธ์ฌ Tab์ ID ์ป๊ธฐ
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab)=>{
if(changeInfo.status === 'complete'){
if(tab.url.includes("URL์ฃผ์"){ globalTabId = tabId; }
}
});
- ์ฌ์ฉ์๊ฐ ๋ฏธ๋ฆฌ ์ง์ ๋ URL์ ์ ์ํ ๊ฒฝ์ฐ, ํด๋น ํญ์ ID๋ฅผ ์ ์ฅ
- ํด๋น ํ๋ก์ ํธ์์๋ ํญ์ ์ํ๋ฅผ ์ ์งํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ญ๋ณ์๋ก ์ ์ฅ ํ ํ์ฉ
2. localStorage ๊ฐ์ ธ์ฌ Script ์ฃผ์
chrome.scripting.executeScript({
target: {tabId: globalTabId },
func: ()=>{return localStorage["key"];}
}, (result)=>{
console.log(result);
});
- ํด๋น ํญ์ Script๋ฅผ ์ฃผ์ ํ์ฌ localStorage[”key”] ๊ฐ์ ๋ฐํํ๋๋ก ํจ
[ ํ์ด๋จธ ๊ตฌํ ]
setInterval(()=>{
if(globalTabId!=""){
chrome.scripting.executeScript({
/* ... */
});
}
}, 1000);
- setInterval(): ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๊ณ ํจ์๋ฅผ ์คํ
- globalTabId๊ฐ ์ฃผ์ ๋ ํ๋ถํฐ, localStorage ์ป์ด์ค๋ ํจ์ ๋ฐ๋ณต ์คํ
- ์ป์ด์จ ๊ฐ์ ์ํ๊ฐ play๋ผ๋ฉด, ํ์ด๋จธ๊ฐ ์คํ๋๊ณ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ Extension์ ํ์
[ Problem ]
Web Page ํต์
- ์ํฉ: ‘send data to web page’ ์ ๋ํด ๊ฒ์ํ๋ฉด ๋์ค๋ sendMessage ํ์ฉ
- ๊ณผ์
- chrome.runtime.sendMessage & chrome.runtime.onMessage()→ ๋ด๋ถ JS๊ฐ ์ํตํ ๋, ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ผ ํ๋จ
- : chrome extension๊ด๋ จ npm ์ค์น์๋ ๋ถ๊ตฌํ๊ณ chrome.runtime์ ์ธ์ํ์ง ๋ชปํจ
- document.dispatchEvent & document.addEventListner
- : ๊ฐ์ DOM์ ๊ณต์ ํ๊ณ ์์ง ์์ผ๋ฏ๋ก ์ฌ์ฉํ ์ ์์
- ํด๊ฒฐ
- tabID๋ฅผ ์๊ณ ์๊ณ , ํ์ํ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ localStorage์ ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์, tabId๋ก ์ ๊ทผํ์ฌ script ์ฃผ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ์ ํ
[ ๊ฒฐ๊ณผ ]
๋ฐ์ํ
'๐ป ๊ฐ๋ฐ ์ผ์ง > FrontEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[chrome extension] setInterval ํ์ด๋จธ (0) | 2022.03.24 |
---|---|
[Chrome Extension] ํญ ์ ์ด ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.03.17 |
[Chrome Extension] Chrome Storage๋ฅผ ํ์ฉํ Extension ๋ง๋ค๊ธฐ (0) | 2022.03.16 |