Spaces:
Running
Running
| /** | |
| * storage.js - ローカルストレージを使用したデータ永続化を管理 | |
| * | |
| * 主な機能: | |
| * - フォーム入力値の保存と復元 | |
| * - 自動保存機能(5秒間隔) | |
| * | |
| * 重要な関数: | |
| * - saveToUserStorage(): フォームデータを保存 | |
| * - loadFromUserStorage(): 保存されたデータを復元 | |
| */ | |
| function saveToUserStorage(force = false) { | |
| const currentTime = new Date().getTime(); | |
| const lastSaveTimestamp = parseInt(localStorage.getItem('lastSaveTimestamp') || '0'); | |
| if (!force && currentTime - lastSaveTimestamp < 5000) { | |
| return; | |
| } | |
| const data = {}; | |
| document.querySelectorAll('input, textarea, select').forEach(input => { | |
| data[input.id] = input.value; | |
| }); | |
| localStorage.setItem('gemini_prompt', JSON.stringify(data)); | |
| localStorage.setItem('lastSaveTimestamp', currentTime.toString()); | |
| return true; | |
| } | |
| function loadFromUserStorage() { | |
| const data = JSON.parse(localStorage.getItem('gemini_prompt')) || {}; | |
| document.querySelectorAll('input, textarea, select').forEach(input => { | |
| let v = data[input.id] || ""; | |
| if (v) { | |
| if (input.type === "number") { | |
| v = parseInt(v); | |
| } | |
| input.value = v; | |
| } | |
| }); | |
| } | |