modified: main_dc/valitovgaziz/html/scripts.js

add universal handler for button sendMessageTelegram
This commit is contained in:
2025-11-09 05:18:40 +05:00
parent 9dd9d8b9ed
commit 39861816f5
+75 -32
View File
@@ -1,6 +1,6 @@
function saveContact() { function saveContact() {
// Создаем содержимое vCard (VCF) // Создаем содержимое vCard (VCF)
const vCardData = `BEGIN:VCARD const vCardData = `BEGIN:VCARD
VERSION:3.0 VERSION:3.0
FN:Валитов Газиз Камилевич FN:Валитов Газиз Камилевич
N:Валитов;Газиз;Камилевич N:Валитов;Газиз;Камилевич
@@ -17,38 +17,38 @@ URL:https://vk.ru/id378105199
BDAY:1985-10-27 BDAY:1985-10-27
END:VCARD`; END:VCARD`;
// Создаем Blob (бинарный объект) с данными vCard // Создаем Blob (бинарный объект) с данными vCard
const blob = new Blob([vCardData], { type: 'text/vcard' }); const blob = new Blob([vCardData], { type: 'text/vcard' });
// Создаем URL для скачивания // Создаем URL для скачивания
const url = URL.createObjectURL(blob); const url = URL.createObjectURL(blob);
// Создаем временную ссылку для скачивания // Создаем временную ссылку для скачивания
const link = document.createElement('a'); const link = document.createElement('a');
link.href = url; link.href = url;
link.download = 'valitovgaziz.vcf'; // Имя файла link.download = 'valitovgaziz.vcf'; // Имя файла
link.click(); link.click();
// Освобождаем память // Освобождаем память
URL.revokeObjectURL(url); URL.revokeObjectURL(url);
} }
function loadTermSheet() { function loadTermSheet() {
// Create a temporary anchor element // Create a temporary anchor element
const link = document.createElement('a'); const link = document.createElement('a');
// Set correct relative path to the PDF file // Set correct relative path to the PDF file
link.href = './assets/docs/TermSheet.pdf'; link.href = './assets/docs/TermSheet.pdf';
// Set download attribute with filename // Set download attribute with filename
link.download = 'TermSheet.pdf'; link.download = 'TermSheet.pdf';
// Append to body to make it work in some browsers // Append to body to make it work in some browsers
document.body.appendChild(link); document.body.appendChild(link);
// Trigger the download // Trigger the download
link.click(); link.click();
// Clean up // Clean up
document.body.removeChild(link); document.body.removeChild(link);
} }
@@ -56,6 +56,13 @@ function loadTermSheet() {
// Обработчик для кнопки "Запросить презентацию" // Обработчик для кнопки "Запросить презентацию"
function sendMessageTelegram() { function sendMessageTelegram() {
// Проверяем, поддерживает ли браузер диалоги
if (typeof window.orientation !== 'undefined' && !window.confirm) {
// Для мобильных браузеров без поддержки prompt - открываем Telegram напрямую
window.open('https://t.me/valitovgaziz', '_blank');
return;
}
const message = prompt("Опишите, пожалуйста, ваше предложение или вопрос. Я свяжусь с вами в ближайшее время:"); const message = prompt("Опишите, пожалуйста, ваше предложение или вопрос. Я свяжусь с вами в ближайшее время:");
if (message) { if (message) {
const BOT_TOKEN = "8470085635:AAEPZcsN3n-3FkMdr7DzxbiQ3q8mXZTGwug"; const BOT_TOKEN = "8470085635:AAEPZcsN3n-3FkMdr7DzxbiQ3q8mXZTGwug";
@@ -72,18 +79,54 @@ function sendMessageTelegram() {
method: 'POST', method: 'POST',
body: formData body: formData
}) })
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
if (data.ok) { if (data.ok) {
alert("Сообщение успешно отправлено! Я свяжусь с вами в ближайшее время."); alert("Сообщение успешно отправлено! Я свяжусь с вами в ближайшее время.");
} else { } else {
console.error('Telegram API Error:', data); console.error('Telegram API Error:', data);
alert("Ошибка: " + (data.description || 'Неизвестная ошибка')); alert("Ошибка: " + (data.description || 'Неизвестная ошибка'));
} }
}) })
.catch(error => { .catch(error => {
console.error("Ошибка:", error); console.error("Ошибка:", error);
alert("Произошла ошибка сети. Попробуйте позже или свяжитесь со мной напрямую."); alert("Произошла ошибка сети. Попробуйте позже или свяжитесь со мной напрямую.");
}); });
} }
} }
// Универсальный обработчик для кнопок
function setupButtonHandlers() {
const buttons = document.querySelectorAll('button[onclick*="sendMessageTelegram"]');
buttons.forEach(button => {
// Удаляем старые обработчики
button.removeAttribute('onclick');
// Добавляем универсальные обработчики
button.addEventListener('click', handleTelegramButtonClick);
button.addEventListener('touchstart', handleTelegramButtonClick, { passive: true });
});
}
// Обработчик кликов для Telegram кнопок
function handleTelegramButtonClick(event) {
event.preventDefault();
event.stopPropagation();
// Для touch-событий, предотвращаем повторное срабатывание
if (event.type === 'touchstart') {
const now = Date.now();
if (this.lastTouch && (now - this.lastTouch) < 500) {
return;
}
this.lastTouch = now;
}
sendMessageTelegram();
}
// Инициализация при загрузке страницы
document.addEventListener('DOMContentLoaded', function () {
setupButtonHandlers();
});