Files
web2mcp/browser-extension/popup.js
empty b1d9f2c518 feat: 添加 LLM Content Extractor 浏览器扩展
- 支持框选区域提取网页内容
- 支持整页内容提取
- 输出格式:Markdown/JSON/XML
- 自动复制到剪贴板
2025-12-03 16:44:03 +08:00

73 lines
2.2 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const selectBtn = document.getElementById('selectBtn');
const fullPageBtn = document.getElementById('fullPageBtn');
const copyLastBtn = document.getElementById('copyLastBtn');
const formatSelect = document.getElementById('formatSelect');
const status = document.getElementById('status');
function showStatus(message, type) {
status.textContent = message;
status.className = `status ${type}`;
setTimeout(() => {
status.className = 'status';
}, 3000);
}
// 框选区域提取
selectBtn.addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
const format = formatSelect.value;
await chrome.tabs.sendMessage(tab.id, {
action: 'startSelection',
format: format
});
window.close();
});
// 提取整页内容
fullPageBtn.addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
const format = formatSelect.value;
try {
const response = await chrome.tabs.sendMessage(tab.id, {
action: 'extractFullPage',
format: format
});
if (response && response.success) {
showStatus('✅ 内容已复制到剪贴板', 'success');
} else {
showStatus('❌ 提取失败', 'error');
}
} catch (err) {
showStatus('❌ 请刷新页面后重试', 'error');
}
});
// 复制上次结果
copyLastBtn.addEventListener('click', async () => {
const result = await chrome.storage.local.get('lastExtraction');
if (result.lastExtraction) {
await navigator.clipboard.writeText(result.lastExtraction);
showStatus('✅ 已复制上次结果', 'success');
} else {
showStatus('❌ 暂无历史记录', 'error');
}
});
// 恢复上次选择的格式
chrome.storage.local.get('format', (result) => {
if (result.format) {
formatSelect.value = result.format;
}
});
// 保存格式选择
formatSelect.addEventListener('change', () => {
chrome.storage.local.set({ format: formatSelect.value });
});
});