1 | initial version |
To add an on/off switch to your Chrome extension, you can follow these steps:
let isEnabled = true;
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.message === "toggle") {
isEnabled = !isEnabled;
}
});
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.sync.set({ isEnabled });
});
chrome.browserAction.onClicked.addListener((tab) => {
isEnabled = !isEnabled;
chrome.storage.sync.set({ isEnabled });
chrome.tabs.sendMessage(tab.id, { message: "toggle", isEnabled });
});
<button id="toggle-btn">On</button>
function toggle() {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
chrome.tabs.sendMessage(tabs[0].id, { message: "toggle" }, (response) => {
updateUI(response.isEnabled);
});
});
}
function updateUI(isEnabled) {
const toggleBtn = document.getElementById("toggle-btn");
if (isEnabled) {
toggleBtn.textContent = "Off";
} else {
toggleBtn.textContent = "On";
}
}
document.addEventListener("DOMContentLoaded", () => {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
chrome.tabs.sendMessage(tabs[0].id, { message: "getIsEnabled" }, (response) => {
updateUI(response.isEnabled);
});
});
document.getElementById("toggle-btn").addEventListener("click", toggle);
});
let isEnabled;
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.message === "toggle") {
isEnabled = request.isEnabled;
// Disable or enable feature depending on isEnabled
} else if (request.message === "getIsEnabled") {
sendResponse({ isEnabled });
}
});
With these changes, your extension should now have an on/off switch that allows users to toggle its behavior.