Spoiler
Код: Выделить всё
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Всплывающая форма для отправки</title>
<style>
/* Стили для всплывающей формы */
#popupForm {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
padding: 20px;
box-shadow: 0 0 10px rgba(0,0,0,0.5);
z-index: 1000;
width: 400px;
border-radius: 5px;
}
#overlay {
display: none;
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
background: rgba(0,0,0,0.5);
z-index: 999;
}
button {
margin: 10px 5px 10px 0;
padding: 8px 15px;
cursor: pointer;
}
#sendBtn {
background-color: #007BFF;
color: white;
border: none;
border-radius: 4px;
}
#sendBtn:hover {
background-color: #0056b3;
}
</style>
</head>
<body>
<!-- Кнопка для открытия формы -->
<button id="openBtn">Открыть форму</button>
<!-- Оверлей -->
<div id="overlay"></div>
<!-- Всплывающая форма -->
<div id="popupForm">
<h2>Отправить сообщение</h2>
<label for="messageText">Текст:</label><br>
<textarea id="messageText" rows="4" style="width:100%; box-sizing: border-box;"></textarea><br><br>
<label for="imageInput">Добавить изображение:</label><br>
<input type="file" id="imageInput" accept="image/*"><br><br>
<div id="imagePreviewContainer"></div>
<button id="sendBtn">Отправить</button>
<button id="closeBtn">Закрыть</button>
</div>
<script>
const openBtn = document.getElementById('openBtn');
const overlay = document.getElementById('overlay');
const popupForm = document.getElementById('popupForm');
const closeBtn = document.getElementById('closeBtn');
const sendBtn = document.getElementById('sendBtn');
const imageInput = document.getElementById('imageInput');
const imagePreviewContainer = document.getElementById('imagePreviewContainer');
let imageDataUrls = [];
// Открытие формы
openBtn.addEventListener('click', () => {
overlay.style.display = 'block';
popupForm.style.display = 'block';
});
// Закрытие формы
const closeForm = () => {
overlay.style.display = 'none';
popupForm.style.display = 'none';
};
closeBtn.addEventListener('click', closeForm);
overlay.addEventListener('click', closeForm);
// Обработка выбора изображения
imageInput.addEventListener('change', () => {
const file = imageInput.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
const dataUrl = e.target.result;
imageDataUrls.push(dataUrl);
// Показываем превью
const img = document.createElement('img');
img.src = dataUrl;
img.style.maxWidth = '100px';
img.style.maxHeight = '100px';
img.style.margin = '5px';
img.style.border = '1px solid #ccc';
imagePreviewContainer.appendChild(img);
imageInput.value = '';
}
reader.readAsDataURL(file);
}
});
sendBtn.addEventListener('click', () => {
const text = document.getElementById('messageText').value;
let body = text;
if (imageDataUrls.length > 0) {
body += '\n\nИзображения (Base64):\n';
imageDataUrls.forEach((dataUrl, index) => {
body += `Изображение ${index + 1}: ${dataUrl}\n`;
});
}
const emailAddress = 'recipient@example.com'; // Укажите нужный email
const subject = 'Сообщение из формы';
const mailtoLink = `mailto:${emailAddress}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
// Создаем невидимую ссылку
const mailto = document.createElement('a');
mailto.href = mailtoLink;
mailto.style.display = 'none';
document.body.appendChild(mailto);
mailto.click();
// Удаляем элемент сразу после клика
document.body.removeChild(mailto);
});
</script>
</body>
</html>Если что то подобное использовалось, то тут как раз издевательство со стороны техподдержки налицо. Так как что бы добраться до формы нужно было залогиниться, что само собою не имеет смысла, так как отправка идёт через клиент пользователя. Самый обычный отсыл по кругу. Тут можно было просто дать адрес электронной почты, куда нужно было обращаться. Единственное что я сделал ранее, так это пересобрал клиент claws-mail.