v1.7.3 前端新增后端选择器 + 暴露 /api/backends + 接通 chrome-cdp 后端
- 新增 GET /api/backends 返回可用后端/默认顺序/说明,供前端动态渲染 - 前端表单新增「捕获后端」下拉框: 自动(默认,优先agent-browser超时自动回退playwright)/agent-browser/playwright/chrome-cdp,不可用的置灰 - 接通 chrome-cdp 后端: 之前函数已实现但 capture_webpage 未接线(传 backend=chrome-cdp 会报 Unknown backend),现支持 screenshot/html/text,连接已开的 Chrome(--remote-debugging-port) - 前端 currentData 携带 backend 字段
This commit is contained in:
+35
-1
@@ -624,6 +624,16 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>捕获后端</label>
|
||||
<select id="backend" style="max-width:100%;">
|
||||
<option value="auto">加载中…</option>
|
||||
</select>
|
||||
<small id="backendHint" style="color: #666; display: block; margin-top: 4px;">
|
||||
自动 = 优先 agent-browser,打开页面超时自动回退 Playwright(推荐)
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>等待设置(重要!)</label>
|
||||
<div class="row">
|
||||
@@ -844,12 +854,35 @@ DELETE /api/history/<id> // 删除历史</code></pre>
|
||||
let smartConfig = null;
|
||||
let lastSmartHistoryId = null;
|
||||
|
||||
// 页面加载时读取历史 + 智能配置
|
||||
// 页面加载时读取历史 + 智能配置 + 可用后端
|
||||
window.addEventListener('load', () => {
|
||||
loadHistory(1);
|
||||
loadSmartConfig();
|
||||
loadBackends();
|
||||
});
|
||||
|
||||
async function loadBackends() {
|
||||
const sel = document.getElementById('backend');
|
||||
const hint = document.getElementById('backendHint');
|
||||
try {
|
||||
const res = await fetch('/api/backends');
|
||||
const data = await res.json();
|
||||
if (!data.success) throw new Error(data.error || '加载失败');
|
||||
const labels = data.labels || {};
|
||||
const opts = ['auto'].concat(data.available || []);
|
||||
sel.innerHTML = opts.map(v =>
|
||||
`<option value="${v}">${escapeHtml(v)} — ${escapeHtml(labels[v] || '')}</option>`
|
||||
).join('') + (data.unavailable || []).map(v =>
|
||||
`<option value="${v}" disabled>${escapeHtml(v)} — ${escapeHtml(labels[v] || '')}(不可用)</option>`
|
||||
).join('');
|
||||
sel.value = 'auto';
|
||||
hint.textContent = labels['auto'] || hint.textContent;
|
||||
} catch (err) {
|
||||
sel.innerHTML = '<option value="auto">自动</option>';
|
||||
hint.textContent = '后端列表加载失败:' + err.message;
|
||||
}
|
||||
}
|
||||
|
||||
// 操作类型切换:智能模式显示提示条
|
||||
document.querySelectorAll('input[name="action"]').forEach(r => {
|
||||
r.addEventListener('change', () => {
|
||||
@@ -957,6 +990,7 @@ DELETE /api/history/<id> // 删除历史</code></pre>
|
||||
scroll_delay: scrollDelay,
|
||||
full_page: fullPage,
|
||||
wait_time: waitTime,
|
||||
backend: document.getElementById('backend').value || 'auto',
|
||||
viewport: {
|
||||
width: viewportWidth,
|
||||
height: viewportHeight
|
||||
|
||||
Reference in New Issue
Block a user