Am de lucru pe un proiect care produce o extensie Chrome. Într-o pagină de fundal I au o funcție numită checkingProcess
. Această funcție este executată atunci când se deschide un tab nou sau un tab este actualizat. (Am încercat să prind schimbare de adresă URL aici.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
Apoi, în checkingProcess
funcție, am unele funcții pentru manipularea datelor și apeluri API. Apoi am încercat să primiți un mesaj care vine de la pop-up. Acest mesaj indică faptul că pop-up a fost deschis de către utilizator.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
După aceea, se trimite un răspuns la pop-up. În fereastra pop-up, am asculta mesajul și de a folosi răspuns în pop-up.
useEffect(() => {
chrome.runtime.sendMessage({ msg: 'popup_opened' }, (res) => {
setHostname(res['hostname'])
setMatchesLength(res['matches_length'])
console.log(res['hostname'], 'burası')
console.log(res['matches_length'], 'burası')
})
}, [])
Cu toate acestea, mi-am dat seama că acest mesaj proces este executat doar o dată, dar am nevoie să-l rulați de mai multe ori pentru a accesa datele în fundal simultan. Cum pot face asta?