soiz1 commited on
Commit
2c3066e
·
1 Parent(s): 4f2e379

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +58 -42
index.html CHANGED
@@ -764,50 +764,66 @@ if ('serviceWorker' in navigator) {
764
  <div class="settings">
765
 
766
  <h2>サービスワーカー設定</h2>
767
- <div hidden><div class="setting-item">
768
- <label><input type="checkbox" id="sw-video" checked> 動画ファイル (/v.mp4)</label>
769
- </div>
770
- <div class="setting-item">
771
- <label><input type="checkbox" id="sw-t-video" checked> 動画ファイル (/t/v.mp4)</label>
772
- </div><br>
773
- <div class="setting-item">
774
- <label><input type="checkbox" id="sw-piano" checked> ピアノ音声 (/p.mp3)</label>
775
- </div>
776
- <div class="setting-item">
777
- <label><input type="checkbox" id="sw-soprano" checked> ソプラノ音声 (/s.mp3)</label>
778
- </div>
779
- <div class="setting-item">
780
- <label><input type="checkbox" id="sw-alto" checked> アルト音声 (/a.mp3)</label>
781
- </div>
782
- <div class="setting-item">
783
- <label><input type="checkbox" id="sw-tenor" checked> テノール音声 (/t.mp3)</label>
784
- </div>
785
- <div class="setting-item">
786
- <label><input type="checkbox" id="sw-combined" checked> 全体音声 (/k.mp3)</label>
787
- </div><br>
788
- <div class="setting-item">
789
- <label><input type="checkbox" id="sw-t-piano" checked> ピアノ音声 (/t/p.mp3)</label>
790
- </div>
791
- <div class="setting-item">
792
- <label><input type="checkbox" id="sw-t-soprano" checked> ソプラノ音声 (/t/s.mp3)</label>
793
- </div>
794
- <div class="setting-item">
795
- <label><input type="checkbox" id="sw-t-alto" checked> アルト音声 (/t/a.mp3)</label>
796
- </div>
797
- <div class="setting-item">
798
- <label><input type="checkbox" id="sw-t-tenor" checked> テノール音声 (/t/t.mp3)</label>
799
- </div>
800
- <div class="setting-item">
801
- <label><input type="checkbox" id="sw-t-combined" checked> 全体音声 (/t/k.mp3)</label>
802
- </div><br>
803
- <div class="setting-item">
804
- <label><input type="checkbox" id="sw-index" checked> インデックスファイル (/index.html)</label>
805
- </div>
806
- <div class="setting-item">
807
- <label><input type="checkbox" id="sw-root" checked> ルートファイル (/)</label>
808
- </div></div>
809
  <button class="combine-button" id="sw-register-btn">登録を開始</button>
810
  <div class="combine-status" id="sw-status"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811
  </div>
812
  <div class="container">
813
  <div class="video-container" id="video-container">
 
764
  <div class="settings">
765
 
766
  <h2>サービスワーカー設定</h2>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
767
  <button class="combine-button" id="sw-register-btn">登録を開始</button>
768
  <div class="combine-status" id="sw-status"></div>
769
+ <script>
770
+ document.getElementById('sw-register-btn').addEventListener('click', async () => {
771
+ const statusElem = document.getElementById('sw-status');
772
+
773
+ function updateStatus(message) {
774
+ console.log(message);
775
+ statusElem.textContent = message;
776
+ }
777
+
778
+ function updateError(message, error) {
779
+ const errorMsg = `${message}\nエラー詳細: ${error?.message || error}`;
780
+ console.error(errorMsg, error);
781
+ statusElem.textContent = errorMsg;
782
+ }
783
+
784
+ if (!('serviceWorker' in navigator)) {
785
+ updateError('このブラウザはService Workerに対応していません。');
786
+ return;
787
+ }
788
+
789
+ try {
790
+ updateStatus('既存のService Workerをアンレジスター中...');
791
+
792
+ const registrations = await navigator.serviceWorker.getRegistrations();
793
+ if (registrations.length === 0) {
794
+ updateStatus('登録されているService Workerはありません。');
795
+ } else {
796
+ for (const registration of registrations) {
797
+ try {
798
+ const success = await registration.unregister();
799
+ if (success) {
800
+ updateStatus('Service Workerをアンレジスターしました。');
801
+ } else {
802
+ updateStatus('Service Workerのアンレジスターに失敗しました。');
803
+ }
804
+ } catch (unregErr) {
805
+ updateError('Service Workerのアンレジスター中に例外が発生しました。', unregErr);
806
+ return;
807
+ }
808
+ }
809
+ }
810
+
811
+ updateStatus('アンレジスター完了。新しいService Workerを登録中...');
812
+
813
+ // 少し待機してから新しいSWを登録
814
+ setTimeout(async () => {
815
+ try {
816
+ const newRegistration = await navigator.serviceWorker.register('/sw.js');
817
+ updateStatus('Service Workerが正常に登録されました。\n登録範囲: ' + newRegistration.scope);
818
+ } catch (regErr) {
819
+ updateError('Service Workerの登録に失敗しました。', regErr);
820
+ }
821
+ }, 300);
822
+ } catch (err) {
823
+ updateError('Service Workerの処理中に致命的なエラーが発生しました。', err);
824
+ }
825
+ });
826
+ </script>
827
  </div>
828
  <div class="container">
829
  <div class="video-container" id="video-container">