打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Widget:GFLMail:修订间差异

来自OGAS数据中枢
弃权者留言 | 贡献
无编辑摘要
弃权者留言 | 贡献
无编辑摘要
第19行: 第19行:
         }
         }
          
          
         var listEl = document.getElementById('gflList-' + widgetId);
         var wrapperEl = document.getElementById('gflWrapper-' + widgetId);
         var detailEl = document.getElementById('gflDetail-' + widgetId);
         var detailEl = wrapperEl.querySelector('.gfl-detail');
        var listEl = wrapperEl.querySelector('.gfl-list');
          
          
         if (!listEl || !detailEl) {
         if (!wrapperEl || !detailEl || !listEl) {
             return;
             return;
         }
         }
第47行: 第48行:
         if (backBtn) {
         if (backBtn) {
             backBtn.addEventListener('click', function() {
             backBtn.addEventListener('click', function() {
                 detailEl.classList.remove('is-open');
                 wrapperEl.classList.remove('detail-open');
                listEl.style.display = '';
             });
             });
         }
         }
第73行: 第73行:
             }
             }
              
              
             listEl.style.display = 'none';
             wrapperEl.classList.add('detail-open');
            detailEl.classList.add('is-open');
         }
         }
     }
     }

2026年5月20日 (三) 21:43的版本

<script> (function() {

   var widgetId = ;
   
   function initMail() {
       var rootEl = document.getElementById('gflRoot-' + widgetId);
       if (!rootEl || rootEl.classList.contains('gfl-initialized')) {
           return;
       }
       
       rootEl.classList.add('gfl-initialized');
       
       var mailsData;
       try {
           mailsData = JSON.parse(rootEl.getAttribute('data-mails') || '[]');
       } catch(e) {
           console.error('GFLMail: Failed to parse mail data', e);
           return;
       }
       
       var wrapperEl = document.getElementById('gflWrapper-' + widgetId);
       var detailEl = wrapperEl.querySelector('.gfl-detail');
       var listEl = wrapperEl.querySelector('.gfl-list');
       
       if (!wrapperEl || !detailEl || !listEl) {
           return;
       }
       
       var items = listEl.querySelectorAll('.gfl-item');
       for (var i = 0; i < items.length; i++) {
           (function(index) {
               var item = items[index];
               
               item.addEventListener('click', function() {
                   openMail(index);
               });
               
               item.addEventListener('keypress', function(e) {
                   if (e.key === 'Enter' || e.key === ' ') {
                       e.preventDefault();
                       openMail(index);
                   }
               });
           })(i);
       }
       
       var backBtn = detailEl.querySelector('.gfl-back-btn');
       if (backBtn) {
           backBtn.addEventListener('click', function() {
               wrapperEl.classList.remove('detail-open');
           });
       }
       
       function openMail(idx) {
           var mail = mailsData[idx];
           if (!mail) return;
           
           var subjectEl = detailEl.querySelector('.gfl-detail-subject');
           var dateEl = detailEl.querySelector('.gfl-date-row');
           var contentEl = detailEl.querySelector('.gfl-content');
           var charEl = detailEl.querySelector('.gfl-char');
           
           if (subjectEl) subjectEl.textContent = mail.subject;
           if (dateEl) dateEl.textContent = mail.date;
           if (contentEl) contentEl.innerHTML = mail.content;
           
           if (charEl) {
               if (mail.charImg) {
                   charEl.innerHTML = '<img src="' + mail.charImg + '" alt="人形立绘" />';
               } else {

charEl.innerHTML = '

立绘区域
(传入图片后显示)

';

               }
           }
           
           wrapperEl.classList.add('detail-open');
       }
   }
   
   if (document.readyState === 'loading') {
       document.addEventListener('DOMContentLoaded', initMail);
   } else {
       initMail();
   }

})(); </script>