크롬 확장 프로그램을 개발하면 content script와 background 간에 메시지를 주고 받아야하는 경우가 있다.
백그라운드에서 보내고 컨텐츠 스크립트에서 받기
//Background 메시지 보내기
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {a: 'Hi'}, data =>{ //a에 Hi를 넣어 보내고 콜백
console.log(data); // Hello!
});
});
//content script 메시지 받기
chrome.runtime.onMessage.addListener((message,sender,sendResponse) => {
if(message.a == 'Hi'){ //메시지의 a가 Hi라면 Hello!라고 반응 보내기.
sendResponse('Hello!');
}
});
chrome.tabs.sendMessage를 쓸려면 Tab id가 필요한데 그러기 위해선 chrome.tabs.query를 써주면 된다.
콘텐츠 스크립트에서 보내고 백그라운드에서 받기
//컨텐츠 스크립트에서 메시지 보내기
chrome.runtime.sendMessage(`Hi!`, response => {
console.log(response); // Yeah
});
//백그라운드에서 메시지 받기
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message === `Hi`) {
sendResponse(`Yeah`);
}
})
'자바스크립트' 카테고리의 다른 글
node.js vs java (0) | 2020.12.04 |
---|---|
이 사이트는 무슨 기술을 사용했을까? Wappalyzer 사용하기 ! (0) | 2020.12.03 |
타입스크립트 쓰는 이유 (0) | 2020.10.29 |
export import (0) | 2020.08.17 |
js css 길이 넘어가질 때 (0) | 2020.05.02 |
댓글