糖心原创

(see the * 'adobe' handle in functions.php — no async, no defer), so a page-load * Target offer has already set `data-hdr` by the time this runs. * * An answer that lands after this point is inert rather than acted on: * `apply()` finds the prune settled and does nothing, so the visitor * keeps the nav they were served instead of watching it change. That is * the deliberate trade-off — a late activity collects no data, but no * visitor ever sees the wrong nav or waits for the right one. */ (function () { var VARIANTS = ["a","b","c"]; var DEFAULT = "a"; /** * QA-only. When the on-page switcher is drawn we keep every variant in * the DOM so it can toggle between them live and you can see that the * chrome never repaints. Gated by the same constant as the switcher, so * it is false everywhere the switcher is absent — including production. */ var QA_KEEP_ALL = false; var root = document.documentElement; var settled = false; function valid(v) { return VARIANTS.indexOf(v) !== -1; } /** Publish the decision and let the nav JS bind. */ function finish(active) { root.setAttribute('data-hdr', active); // Read by the Adobe Analytics client to attribute the test. root.setAttribute('data-hdr-active', active); if (typeof window.initHeaderNav === 'function') window.initHeaderNav(); /** * `variant` is set before the event so late listeners can tell * "already done" from "not yet". main.js is enqueued in the footer * and therefore always misses the event itself. */ window.medalliaNav.variant = active; document.dispatchEvent(new CustomEvent('medallia:nav-ready', { detail: { variant: active } })); } function prune(active) { if (settled) return; settled = true; if (QA_KEEP_ALL) { finish(active); return; } /** * Only menu items carry data-nav-variant, so this can never touch * the shared chrome. CSS has already hidden the losers; removing * them keeps document.querySelector-based nav JS unambiguous. */ var list = document.querySelectorAll('#site-header [data-nav-variant]'); for (var i = 0; i < list.length; i++) { if (list[i].getAttribute('data-nav-variant') !== active) { list[i].parentNode.removeChild(list[i]); } } finish(active); } window.medalliaNav = { variant: null, apply: function (v) { if (valid(v)) prune(v); } }; // `?hv=` sets this server-side; a Target offer in the blocking // embed sets it before the body is parsed. var pre = root.getAttribute('data-hdr'); if (valid(pre)) { prune(pre); return; } /** * Carried forward from an earlier pageview. Read client-side, never in * PHP: WP Engine does not vary its page-cache key on arbitrary cookies, * so server-side personalisation here would serve the first anonymous * visitor's variant to everyone. */ var m = document.cookie.match(/(?:^|; )medallia_nav_variant=([^;]*)/); if (m && valid(m[1])) { prune(m[1]); return; } prune(DEFAULT); })();
糖心原创

Jetzt fragen

Sofortige Antworten auf Ihre dringendsten Fragen, direkt von Ihren Kunden

"糖心原创 Ask Now erm?glicht es uns, unsere Ideen auf einfache Weise zu testen und die Erkenntnisse zu gewinnen, die wir brauchen, um zu wissen, welche Innovationen Bestand haben werden. Die Ergebnisse sind so schnell, dass wir schnell handeln und den Bedürfnissen unserer G?ste voraus sein k?nnen."

MADAN ALLUMADA, SR. MANAGER F?R G?STEERLEBNIS &AMP; PRODUKTENTWICKLUNG BEI HOLLAND AMERICA LINE

Bericht

Forrester Wave Bericht

Lesen Sie den Bericht von Forrester und erfahren Sie, warum ein zentraler, einfacher Zugang zu Kundenfeedback für Ihr Unternehmen von unsch?tzbarem Wert ist.

Antworten in Echtzeit von echten Kunden

Stellen Sie in laufenden Umfragen kurzfristig neue Fragen ein und erfassen Sie Antworten in Echtzeit.

Neue Konzepte auf dem Prüfstand

Testen Sie Ihre neuesten Ideen schnell und sammeln Sie wertvolles Feedback für eine bessere Prototypenentwicklung.

Bessere Entscheidungen auf der Grundlage besserer Daten

Treffen Sie Entscheidungen auf der Grundlage von Kundendaten, ohne etwas zu verpassen - geben Sie allen Mitarbeitern die Flexibilit?t, Fragen zu stellen, die für ihre jeweiligen M?rkte und Aufgaben relevant sind.