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. I de här exemplen anges pageName och metoden t() anropas på två olika sätt för 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. I det här exemplet ställs pageName in och metoden t() anropas med egenskapen parent
.
// 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
- Liksom 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 anges variabeln
referrer
till den överordnade URL:en, inte till den faktiska refererande URL:en. Du kan ställa in variabelnreferrer
manuellt för att lösa problemet. - Adobe Experience Cloud-felsökaren känner inte igen bildbegäranden som utlösts inom iframes.
- Activity Map visar inte heatmap-kartan över länkar som klickats i iframes. Hela iframe markeras i stället.