Fix: исправлена загрузка видео в чате

- Добавлен атрибут preload='metadata' для video элементов
- Добавлен текст-заглушка 'Ваш браузер не поддерживает видео'
- Добавлена принудительная загрузка video.load() после добавления в DOM
- Исправлено как в шаблоне, так и в JavaScript для WebSocket сообщений

Теперь видео загружается сразу после отправки без перезагрузки страницы
This commit is contained in:
admin i 2025-11-28 08:10:19 +03:00
parent 34259a4e46
commit e2f29fc6bd
2 changed files with 14 additions and 2 deletions

View File

@ -176,8 +176,9 @@ export function createMessageElement(msg, options = {}) {
<div class="small text-secondary">${esc(att.file_name)}</div>`;
} else if (att.file_type === 'video') {
attachmentsHTML += `
<video controls class="w-100" style="max-width: 400px;">
<video controls preload="metadata" class="w-100" style="max-width: 400px;">
<source src="${att.file_url}" type="${att.mime_type}">
Ваш браузер не поддерживает видео.
</video>
<div class="small text-secondary">${esc(att.file_name)}</div>`;
} else {
@ -222,5 +223,15 @@ export function createMessageElement(msg, options = {}) {
wrap.innerHTML = `${bubble}<a class="ms-2 text-decoration-none" href="${profileUrl}">${ava}</a>`;
}
// Принудительно загружаем видео после добавления в DOM
if (msg.has_attachments && msg.attachments && msg.attachments.length > 0) {
setTimeout(() => {
const videos = wrap.querySelectorAll('video');
videos.forEach(video => {
video.load();
});
}, 100);
}
return wrap;
}

View File

@ -107,8 +107,9 @@
</audio>
<div class="small text-secondary">{{ attachment.file_name }}</div>
{% elif attachment.file_type == 'video' %}
<video controls class="w-100" style="max-width: 400px;">
<video controls preload="metadata" class="w-100" style="max-width: 400px;">
<source src="{{ attachment.file.url }}" type="{{ attachment.mime_type }}">
Ваш браузер не поддерживает видео.
</video>
<div class="small text-secondary">{{ attachment.file_name }}</div>
{% else %}