Tengo un div en mi página web que contiene una cadena JSON válida. Obtengo su valor usando la función text() en jQuery así:
$("div.selector").text();La cadena JSON contiene algunas líneas y pestañas nuevas. Es perfectamente válido y coincide con el formato esperado por Google Tag Manager Enhanced eCommerce ( https://developers.google.com/tag-manager/enhanced-ecommerce ).
El problema al que me enfrento es que usar lo siguiente evita que se registre el evento
dataLayer.push($("div.selector").text());mientras pega el JSON dentro de push() registra manualmente el evento correctamente:
dataLayer.push(VALID JSON);Usando
dataLayer.push($("div.selector").text());empuja una cadena de texto en dataLayer que se ve así
{\n\t\t\"event\": \"someEvent\",\n\t\t\"eventCategory\": \"Order Update\" ¿Cómo puedo enviar un JSON válido que se ha extraído usando text() ?
Usar JSON.parse()
por ejemplo: dataLayer.push(JSON.parse($("div.selector").text()));