Repository navigation
Expand file tree
/
Copy pathresult.js
More file actions
73 lines (62 loc) · 2.35 KB
/
Copy pathresult.js
File metadata and controls
73 lines (62 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// 画面が表示されたらストレージから結果を読み込む
document.addEventListener('DOMContentLoaded', () => {
updateUI();
// ストレージの変更を監視(バックグラウンドで解析が完了したら画面を更新するため)
chrome.storage.onChanged.addListener((changes, namespace) => {
if (changes.analysisResult) {
renderResult(changes.analysisResult.newValue);
}
});
});
// ストレージからデータを取得して表示
function updateUI() {
chrome.storage.local.get(['analysisResult'], (result) => {
if (result.analysisResult) {
renderResult(result.analysisResult);
}
});
}
// 画面描画ロジック
function renderResult(data) {
const contentDiv = document.getElementById('content');
const footer = document.getElementById('footer');
if (data.status === 'loading') {
contentDiv.textContent = "画像をGeminiに送信して解析中...\n少々お待ちください。";
contentDiv.className = 'loading';
footer.style.display = 'none';
} else if (data.status === 'success') {
contentDiv.textContent = data.text;
contentDiv.className = '';
footer.style.display = 'block';
} else if (data.status === 'error') {
contentDiv.textContent = "エラーが発生しました:\n" + data.error;
contentDiv.className = 'error';
footer.style.display = 'block'; // 閉じるボタンを押せるようにする
}
}
// --- ボタンのイベントリスナー ---
document.getElementById('closeBtn').addEventListener('click', () => {
window.close();
});
// ESCキーでページを閉じる
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
window.close();
}
});
document.getElementById('copyBtn').addEventListener('click', async (e) => {
const text = document.getElementById('content').textContent;
try {
await navigator.clipboard.writeText(text);
const btn = e.target;
const originalText = btn.textContent;
btn.textContent = "コピーしました!";
btn.classList.add('copied');
setTimeout(() => {
btn.textContent = originalText;
btn.classList.remove('copied');
}, 2000);
} catch (err) {
console.error('コピー失敗', err);
}
});