Blog category

Technology and Equipment

Discover how audiovisual technology works. We review the best equipment on the market, from microphones to giant LED screens. Technical concepts explained in a simple and accessible way for everyone.

RESOURCES FOR EVENT ORGANIZERS

DOWNLOAD THE GUIDE FOR A PERFECT AUDIOVISUAL EVENT

Receive the definitive step-by-step guide in your inbox for organizing conferences and presentations without technical failures. Includes our expert checklist for sound, video, and streaming.

Contact Form

Get a detailed estimate.

You will receive confirmation by email

Request via WhatsApp

Direct response to our team

When you send it, WhatsApp will open with your message already typed out

(function($) { var whatsappWindow = null; // Detección de dispositivos (incluye la corrección para iPad) var isIPad = (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || isIPad; document.addEventListener('submit', function(e) { var form = e.target; // Identificamos que es el formulario del popup de WhatsApp por el campo "necesidad" if (form.matches && form.matches('form.elementor-form') && form.querySelector('[name="form_fields[necesidad]"]')) { if (!isMobile) { // En ordenador, abrimos preventivamente la pestaña para evitar bloqueos whatsappWindow = window.open('', '_blank'); } } }, true); // Binding delegado: 'this' es siempre el real que disparó el evento, // nunca "el primero que encuentre en la página" (fix del conflicto entre formularios) jQuery(document).on('submit_success', 'form.elementor-form', function(event) { var form = this; if (!form.querySelector('[name="form_fields[necesidad]"]')) return; function getVal(id) { var el = form.querySelector('[name="form_fields[' + id + ']"]'); return el ? el.value.trim() : ''; } // Campos del formulario del popup de WhatsApp var nombre = getVal('name') || '[Nombre]'; var empresa = getVal('company') || '[Empresa]'; var email = getVal('email') || '[Email]'; var telefono = getVal('phone') || '[Teléfono]'; var necesidad = getVal('necesidad') || '[Tipo de necesidad]'; var fecha = getVal('date') || '[Fecha no especificada]'; var evento = getVal('message') || '[Detalles del evento]'; // Mensaje estructurado para el popup de WhatsApp var mensaje = "Hola, buenas.\n\n" + "Soy *" + nombre + "*.\n" + "Trabajo en *" + empresa + "*.\n" + "Mi correo es *" + email + "*.\n" + "Mi teléfono es *" + telefono + "*.\n\n" + "Os contacto porque necesito: *" + necesidad + "*.\n\n" + "Fecha del evento: *" + fecha + "*.\n\n" + "Detalles del evento:\n" + evento; // === GTM: evento de conversión WhatsApp === window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event': 'whatsapp_click', 'whatsapp_necesidad': necesidad }); // 1. URL Directa (whatsapp://) - Fuerza abrir la App Nativa (Móviles) var urlDirectaApp = "whatsapp://send?phone=34622788280&text=" + encodeURIComponent(mensaje); // 2. URL Estándar (api.whatsapp) - Versión web intermedia (Ordenadores) var urlSeguraWeb = "https://api.whatsapp.com/send?phone=34622788280&text=" + encodeURIComponent(mensaje); if (isMobile) { // En móviles salta directo a la app en la misma pestaña window.location.href = urlDirectaApp; } else { // En ordenadores usamos la pestaña segura (sin redirección de gracias) if (whatsappWindow && !whatsappWindow.closed) { whatsappWindow.location.href = urlSeguraWeb; } else { window.open(urlSeguraWeb, '_blank'); } } }); })(jQuery); jQuery(document).ready(function($) { // Escuchamos el clic en el texto de aceptación $(document).on('click', '.elementor-field-type-acceptance label', function(e) { // Si el usuario NO ha hecho clic en el enlace azul de la política... if (e.target.tagName.toLowerCase() !== 'a') { e.preventDefault(); // ¡Magia! Esto evita el scroll a la parte inferior e.stopPropagation(); // Esto evita que el pop-up se cierre // Buscamos la casilla exacta que está al lado de este texto y la marcamos manualmente var $checkbox = $(this).closest('.elementor-field-subgroup').find('input[type="checkbox"]'); $checkbox.prop('checked', !$checkbox.prop('checked')); } }); });