// declare message listener from inject script window.addEventListener('message', (event) => { if (event.source === window && event.data.from === 'inject-script') { console.log('[Demo] receive', event.data); } }); chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { console.log('[Demo] =============================================='); const func = request.func; if (func === 'addRecord') { window.postMessage({ msg: 'ping from content script', from: 'content-script', func: 'addRecord' }); } if (func === 'deleteRecord') { window.postMessage({ msg: 'ping from content script', from: 'content-script', func: 'deleteRecord' }); } console.log('[Demo] receive', func); sendResponse({ response: '[Demo] pone-pone from content script' }); });