在AngularJS中异步包含Adobe DTM

时间:2018-08-17 14:56:39

标签: javascript angularjs asynchronous adobe adobe-dtm

我们有一个使用AngularJS开发的平台。对于所有客户而言,该平台都是相同的。 我们必须只为客户提供Adobe DTM。

有时我的外部脚本未加载。 您有更好的方法吗?

enter image description here

var adobedtm = '//assets.adobedtm.com/5249...abe2e5/satelliteLib-2d8560...eb5937-staging.js';

if( window._env.environment === 'production' ){
  adobedtm = "//assets.adobedtm.com/5249...abe2e5/satelliteLib-2d8560...eb5937.js"
}

$.getScript('//cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js', function (data, textStatus, jqxhr){
  postscribe(document.body, '<script src="' + adobedtm + '" type="text/javascript"><script type="text/javascript">_satellite.setDebug(true);</script><script type="text/javascript">_satellite.pageBottom();</script>');
});

1 个答案:

答案 0 :(得分:0)

我相信,除了将DTM库嵌入HTML文件的标头部分之外,没有其他更好的方法。使用document.write()添加外部脚本,该脚本仅在页面加载时起作用。

参考:http://javascript.info/modifying-document#a-word-about-document-write