I'm making a small chrome extension. Right now I'm checking for website language and trying to show that language in popup.html
but response function is not working and I'm unable to show language in popup. Any help?
popup.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Popup</h1>
<script src="./scripts/popup.js"></script>
</body>
</html>
popup.js
chrome.runtime.sendMessage({type: "getLanguage"}, function(selectedLanguage) {
// This function is not working
if(typeof selectedLanguage == "undefined") {
} else {
console.log(selectedLanguage)
}
})
content-script.js // Content script
const pageLanguage = document.querySelector("html").getAttribute('lang');
const language = languages.find(lang => lang.code === pageLanguage); // languages is an array which have all language codes
chrome.runtime.sendMessage({type: 'setLanguage', language: language.name});
background.js
// Background script
// Example of Chrome API use:
chrome.tabs.onCreated = () => {
console.log('New tab opened');
}
chrome.runtime.onMessage.addListener(
function (message, sender, sendResponse) {
switch (message.type) {
case 'setLanguage':
lang = message.language;
break;
case 'getLanguage':
console.log(lang);
sendResponse(lang);
break;
default:
console.error("Unrecognised message: ");
}
}
)
Try the long lived connections ports which is better for talking between the contentscript and the background page
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.