将AppMeasurement与iframe结合使用

您可以从子和父参数引用AppMeasurement变量。 必须在AppMeasurement库所在的位置定义所有变量。 以下示例说明如何在iframe内外设置基本的AppMeasurement变量和方法。

如果使用Adobe Experience Platform Launch,请确保跟踪器对象可全局访问。 请参 阅启动用户指 南中的Adobe Analytics扩展概述。

!![CAUTION]
避免在父页面和iframe上都包含AppMeasurement库。 这样做会给发送多个图像请求、增加报告和增加可计费服务器调用带来风险。

访问驻留在iframe中的AppMeasurement

您可以通过iframe对象访问AppMeasurement变量。 这些示例 设置 pageName ,并使用两种不 同的方法调用t()方法来引用iframe对象。

// 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();

从iframe中访问AppMeasurement

您可以从iframe中访问父页面上的AppMeasurement变量。 此示例 设置pageName ,并使 用属性调用 t() 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();

使用 postMessage 和事件监听器

或者,也可以使用 postMessage 和事件监听器设置变量。 此方法不需要对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");

限制

  • 与其他JavaScript代码一样,iframe只能在域和协议匹配时进行通信。 如果iframe内容位于父级以外的其他域上,则这些示例将不起作用。
  • 如果AppMeasurement驻留在iframe中,则变 referrer 量将设置为父URL,而不是实际的引用URL。 您可以手动设置 referrer 变量以解决此问题。
  • Adobe Experience Cloud 调试器 不识别在iframe内触发的图像请求。
  • Activity Map不会在单击的信息中的链接上显示热图。 而是高亮显示整个iframe。

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now