Använda AppMeasurement med iframes
Du kan referera till AppMeasurementen från både underordnade och överordnade iframes. Det är nödvändigt att definiera alla variabler på samma plats där AppMeasurementet finns. I följande exempel beskrivs hur du ställer in grundläggande AppMeasurement-variabler och -metoder i och utanför en iframe.
Om du använder taggar i Adobe Experience Platform måste du se till att spårningsobjektet är globalt tillgängligt. Se Översikt över Adobe Analytics-tillägg.
Få åtkomst till AppMeasurement som finns i en iframe
Du kan komma åt AppMeasurementets variabler via iframe-objektet. De här exemplen har angetts pageName och ringa t(), metod använder du två olika sätt att referera till iframe-objektet.
// Reference AppMeasurement code that resides within an iframe and send an image request
document.getElementById('targetFrame').contentWindow.s.pageName="Page name within iframe";
document.getElementById('targetFrame').contentWindow.s.t();
// An alternate method to the above if there's only one iframe on the page
window.frames[0].contentWindow.s.pageName = "Page name within iframe";
window.frames[0].contentWindow.s.t();
Få åtkomst till AppMeasurementet inifrån en iframe
Du kan komma åt AppMeasurementets variabler på en överordnad sida inifrån en iframe. Det här exemplet anger pageName och anropar t(), metod med parent
-egenskap.
// Reference AppMeasurement code on a parent page from within an iframe and send an image request
parent.s.pageName = "Page Name on Hosted Window";
parent.s.t();
Använd postMessage
och händelseavlyssnare
Du kan också använda postMessage
och händelseavlyssnare för att ange variabler. Den här metoden kräver ingen direkt referens till en iframe.
// Place this code in your parent window
function listenMessage(e) {
if(e.data == "Example page view call") {
s.pageName = "Page name using postMessage";
s.t();
}
}
window.addEventListener("message", listenMessage, false);
// Place this code in the iframe
window.top.postMessage("Example page view call","https://example.com");
Begränsningar
- Precis som med annan JavaScript-kod kan iframes bara kommunicera när domäner och protokoll matchar. De här exemplen fungerar inte om iframe-innehållet finns i en annan domän än det överordnade.
- Om AppMeasurementet finns i en iframe visas
referrer
variabeln ställs in på den överordnade URL:en, inte den faktiska refererande URL:en. Du kan ställa inreferrer
variabel som löser problemet. - The Adobe Experience Cloud debugger känner inte igen bildbegäranden som utlöses inom iframes.
- Activity Map visar inte heatmap-kartan över länkar som klickats i iframes. Hela iframe markeras i stället.