const input = document.getElementById("serverUrl"); const saveBtn = document.getElementById("save"); const savedEl = document.getElementById("saved"); chrome.storage.sync.get(["serverUrl"], ({ serverUrl }) => { input.value = serverUrl ?? "http://localhost:3000"; }); saveBtn.addEventListener("click", async () => { const value = input.value.trim(); if (!value) return; let origin; try { origin = new URL(value).origin; } catch { savedEl.textContent = "網址格式不正確"; savedEl.style.color = "#b45309"; return; } await chrome.storage.sync.set({ serverUrl: origin }); const granted = await chrome.permissions.request({ origins: [`${origin}/*`] }); if (granted) { try { await chrome.scripting.unregisterContentScripts({ ids: ["haixun-bridge"] }); } catch { // ignore } await chrome.scripting.registerContentScripts([ { id: "haixun-bridge", matches: [`${origin}/*`], js: ["content-haixun.js"], runAt: "document_idle", }, ]); savedEl.textContent = `已儲存:${origin}(已啟用網頁同步)`; savedEl.style.color = "#166534"; } else { savedEl.textContent = "已儲存網址,但未授權存取該網站(同步時會再詢問)"; savedEl.style.color = "#b45309"; } });