init working
This commit is contained in:
40
popup.js
Normal file
40
popup.js
Normal file
@ -0,0 +1,40 @@
|
||||
const slider = document.getElementById("slider");
|
||||
const val = document.getElementById("val");
|
||||
|
||||
slider.addEventListener("input", () => {
|
||||
val.textContent = slider.value;
|
||||
});
|
||||
|
||||
slider.addEventListener("change", async () => {
|
||||
const volume = Number(slider.value);
|
||||
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
|
||||
if (!tab?.id) return;
|
||||
|
||||
// Ensure page_script.js is injected
|
||||
await chrome.scripting.executeScript({
|
||||
target: { tabId: tab.id },
|
||||
files: ["page_script.js"],
|
||||
});
|
||||
|
||||
// Send message to the injected page script
|
||||
chrome.tabs.sendMessage(tab.id, { action: "setVolume", volume });
|
||||
});
|
||||
|
||||
// Initialize with current volume
|
||||
(async function init() {
|
||||
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
|
||||
if (!tab?.id) return;
|
||||
|
||||
await chrome.scripting.executeScript({
|
||||
target: { tabId: tab.id },
|
||||
files: ["page_script.js"],
|
||||
});
|
||||
|
||||
chrome.tabs.sendMessage(tab.id, { action: "getVolume" }, (response) => {
|
||||
if (chrome.runtime.lastError) return; // ignore if no response
|
||||
if (response && typeof response.volume === "number") {
|
||||
slider.value = response.volume;
|
||||
val.textContent = response.volume;
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user