Widget:GFLMail:修订间差异
来自OGAS数据中枢
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第19行: | 第19行: | ||
} | } | ||
var | var wrapperEl = document.getElementById('gflWrapper-' + widgetId); | ||
var detailEl = | var detailEl = wrapperEl.querySelector('.gfl-detail'); | ||
var listEl = wrapperEl.querySelector('.gfl-list'); | |||
if (! | if (!wrapperEl || !detailEl || !listEl) { | ||
return; | return; | ||
} | } | ||
| 第47行: | 第48行: | ||
if (backBtn) { | if (backBtn) { | ||
backBtn.addEventListener('click', function() { | backBtn.addEventListener('click', function() { | ||
wrapperEl.classList.remove('detail-open'); | |||
}); | }); | ||
} | } | ||
| 第73行: | 第73行: | ||
} | } | ||
wrapperEl.classList.add('detail-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>