45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
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";
|
|
}
|
|
}); |