我遇到了DTM的问题以及引用js对象的时机。我注意到DTM有时无法访问Web应用程序(ASP.net MVC框架)创建的js对象。 js对象是在DTM加载的任何j之前创建的,但我开始在几个点使用“settimeouts”以确保我有对象的上下文,但现在变得越来越难以管理,因为我不得不在许多地方这样做。
我想知道是否有人对如何延迟加载DTM文件有任何建议,直到我知道我有权访问该对象?我有一个加载相应DTM文件的bootstrap文件。我在考虑可能将延迟放在bootstrap加载程序文件中,但我仍然不喜欢这个解决方案,因为我也担心页面的加载时间。想法?
-Thanks!
答案 0 :(得分:1)
如果您需要控制页面加载,那么一种解决方案是在页面加载时“中止”原始AA请求,然后,当您的对象存在时,调用将发送数据的直接调用规则。 / p>
我可能会尝试这样的事情:
//Page Load Rule - Adobe Analytics Custom Code Section
s.abort = true // cancel the initial image request on page load
//Check for ASP Object
//Can be done within AA custom code or a custom JS tag
if (MY_OBJ_EXISTS) {
_satellite.track('MY_RULE_TO_SEND_DATA_TO_AA')
}
如果在将数据发送到AA之前需要加载ajax,则可以应用相同的概念。您可以中止初始呼叫,收听回叫并通过直接呼叫规则发送数据。
希望这有帮助。