diff --git a/browser-extension/README.md b/browser-extension/README.md index d7626bd..d3ef693 100644 --- a/browser-extension/README.md +++ b/browser-extension/README.md @@ -15,7 +15,7 @@ 2. 点击“生成导入码”,复制 SmartUp 地址和导入码。 3. 在本机真实浏览器打开 Meow/New-API 页面并完成登录。 4. 点击 SmartUp Auth Importer 扩展图标。 -5. 粘贴 SmartUp 地址和导入码。 +5. 粘贴 SmartUp 地址和导入码;如果 SmartUp 部署在远程服务器,可以先点击“保存地址”长期复用该地址。 6. 点击“采集当前页并回填”。 7. 回到 SmartUp,等待候选凭证出现后点击“填入当前表单”。 diff --git a/browser-extension/popup.html b/browser-extension/popup.html index 1a53d50..ba3153d 100644 --- a/browser-extension/popup.html +++ b/browser-extension/popup.html @@ -29,6 +29,14 @@ border-radius: 6px; font-size: 13px; } + .origin-row { + display: flex; + gap: 8px; + } + .origin-row input { + flex: 1; + min-width: 0; + } button { width: 100%; margin-top: 12px; @@ -40,6 +48,14 @@ font-weight: 600; cursor: pointer; } + .origin-row button { + width: auto; + margin-top: 0; + padding: 8px 10px; + white-space: nowrap; + background: #374151; + font-size: 12px; + } button:disabled { opacity: 0.6; cursor: not-allowed; @@ -64,7 +80,10 @@

SmartUp 凭证导入

- +
+ + +
diff --git a/browser-extension/popup.js b/browser-extension/popup.js index 654028c..4fbaf5f 100644 --- a/browser-extension/popup.js +++ b/browser-extension/popup.js @@ -1,6 +1,7 @@ const smartupInput = document.getElementById('smartup') const codeInput = document.getElementById('code') const submitButton = document.getElementById('submit') +const saveOriginButton = document.getElementById('save-origin') const statusEl = document.getElementById('status') function setStatus(text, cls = '') { @@ -33,6 +34,25 @@ async function saveConfig(origin, code) { await chrome.storage.local.set({ smartupOrigin: origin, importCode: code }) } +async function saveOriginOnly() { + const smartupOrigin = normalizeOrigin(smartupInput.value) + if (!smartupOrigin) { + setStatus('SmartUp 地址必须以 http:// 或 https:// 开头', 'err') + return + } + + saveOriginButton.disabled = true + try { + await chrome.storage.local.set({ smartupOrigin }) + smartupInput.value = smartupOrigin + setStatus('SmartUp 地址已保存', 'ok') + } catch (error) { + setStatus(error?.message || '保存失败', 'err') + } finally { + saveOriginButton.disabled = false + } +} + async function getActiveTab() { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }) if (!tab?.id || !tab.url || !/^https?:\/\//.test(tab.url)) { @@ -135,4 +155,8 @@ submitButton.addEventListener('click', () => { void submitImport() }) +saveOriginButton.addEventListener('click', () => { + void saveOriginOnly() +}) + void loadSavedConfig()