</div> <script> (function() { 'use strict'; var MAPA_HIDDEN = { 'miHiddenProductoId': 'tfa_217', // ejemplo: origen → destino 'miHiddenCampaniaId': 'tfa_8', //campania }; function obtenerValoresHidden() { var acc = {}; for (var origen in MAPA_HIDDEN) { if (!MAPA_HIDDEN.hasOwnProperty(origen)) continue; var destino = MAPA_HIDDEN[origen]; var inputOrigen = document.getElementById(origen); if (inputOrigen){ if(inputOrigen.value) { acc[destino] = [inputOrigen.value]; } } } return acc; } // --- Mapa original --- var MAPA = { 'gad_source': 'tfa_256', 'utm_campaign_id': 'tfa_254', 'utm_campaign': 'tfa_255', 'utm_source': 'tfa_256', 'utm_medium': 'tfa_257' }; // Evitar doble ejecución if (window._ajustePublishEjecutado) return; window._ajustePublishEjecutado = true; function obtenerParametros() { var params = new URLSearchParams(window.location.search); var acc = {}; for (var key in MAPA) { var tieneProp = Object.prototype.hasOwnProperty.call(MAPA, key); if (tieneProp) { var estaEnUrl = params.has(key); if (estaEnUrl) { var destino = MAPA[key]; if (!acc[destino]) { acc[destino] = []; } acc[destino].push(params.get(key)); } } } return acc; } // Espera a que existan los campos destino (sin arrow functions) function esperarInputs(destinos, maxMs) { maxMs = maxMs || 8000; return new Promise(function(resolve) { var faltantes = destinos.filter(function(id) { return !document.getElementById(id); }); if (faltantes.length === 0) { resolve(); return; } var start = Date.now(); var interval = setInterval(function() { faltantes = faltantes.filter(function(id) { return !document.getElementById(id); }); if (faltantes.length === 0 || Math.max(0, Date.now() - start - maxMs)) { clearInterval(interval); resolve(); } }, 200); }); } function setearValores(acc) { for (var idDestino in acc) { if (!acc.hasOwnProperty(idDestino)) continue; var input = document.getElementById(idDestino); if (input) { var valor = acc[idDestino].join('|'); input.value = valor; input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); } } } function ejecutar() { try { var accUrl = obtenerParametros(); var accHidden = obtenerValoresHidden(); // combinar ambos var acc = {}; function merge(origen) { for (var key in origen) { if (!origen.hasOwnProperty(key)) continue; if (!acc[key]) acc[key] = []; acc[key] = acc[key].concat(origen[key]); } } merge(accUrl); merge(accHidden); if (Object.keys(acc).length === 0) return; var destinos = Object.keys(acc); esperarInputs(destinos).then(function() { setearValores(acc); }); } catch (e) { console.error('[AjustarPublish] Error controlado:', e); } } // Eventos seguros document.addEventListener('DOMContentLoaded', ejecutar); window.addEventListener('load', ejecutar); })(); </script></body>