我在尝试将数据发送到React应用程序中的GTM(谷歌标记管理器)时遇到了问题 . 我们已经设法在相关页面上放置了不同的脚本 .
例如,下面是我们放入购物车页面的脚本之一:
class Cart extends Component {
render() {
const { cartItems } = this.props;
return (
<script
dangerouslySetInnerHTML={{ __html: `
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'viewCart',
cartItems: ${cartItems}
});
window.history = window.history || [];
window.history.pushState({
page: 'Current Cart Page',
events: 'viewCart',
cartItems: ${cartItems},
}, 'Current Cart Page');
` }}
/>
);
}
}
当我们从另一个页面(E.G . :主页)访问购物车页面时,不会执行上述脚本,但是当我们刷新页面时,它会被触发 .
事实证明,数据层仅推送到 pageLoad
和 DOMReady
事件 . 但不是 historyChange
有没有人遇到这个,知道如何解决它?