style/security: эмодзи→SVG, safeUrl в ассистенте, prefs в localStorage (Спринт3)
- Убраны эмодзи (правило: только inline SVG .ic): classes.html 🃏→layers, collection-rb.html ⭐→star, pet.html 😋/😢→текст (textContent не держит SVG). - assistant.js: safeUrl() на динамических href (FAQ/поиск/RAG/правила) — блокирует javascript:/data:, пропускает /… и https://…. - LS.prefs: персистентность через localStorage (раньше sync был отключён, настройки терялись при перезагрузке). Грузим синхронно + flush на pagehide. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -1776,11 +1776,11 @@ function showFeedResult(correct, xp, customMsg) {
|
||||
el.style.cssText = 'display:block;padding:12px 14px;border-radius:12px;background:rgba(56,217,90,.1);border:1.5px solid rgba(56,217,90,.25);font-size:.87rem;font-weight:700;text-align:center;color:#38D95A';
|
||||
el.textContent = `Правильно! +${xp} XP — питомец доволен!`;
|
||||
floatLabel(`+${xp} XP`, '#38D95A');
|
||||
document.getElementById('pet-bubble').textContent = '😋 Вкуснятина!';
|
||||
document.getElementById('pet-bubble').textContent = 'Вкуснятина!';
|
||||
setTimeout(() => { closeFeedGame(); startFeedCooldown(1800); }, 1800);
|
||||
} else {
|
||||
el.style.cssText = 'display:block;padding:12px 14px;border-radius:12px;background:rgba(249,65,68,.08);border:1.5px solid rgba(249,65,68,.2);font-size:.87rem;font-weight:700;text-align:center;color:#F94144';
|
||||
el.textContent = 'Неверно — питомец остался голодным 😢';
|
||||
el.textContent = 'Неверно — питомец остался голодным';
|
||||
setTimeout(closeFeedGame, 1800);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user