1

在我正在开发的网站上,我需要在页面加载 10 秒后加载跟踪脚本。我找到了一个这样做的片段,但我遇到了障碍。等待 10 秒后,页面变为白色。URL 似乎没有改变,但页面不再可见,并且 throbber 开始旋转。

这是我用来加载脚本的内容:

function $import(src){
  var scriptElem = document.createElement('script');
  scriptElem.setAttribute('src',src);
  scriptElem.setAttribute('type','text/javascript');
  document.getElementsByTagName('head')[0].appendChild(scriptElem);
}

// import with a random query parameter to avoid caching
function $importNoCache(src){
  var ms = new Date().getTime().toString();
  var seed = "?" + ms; 
  $import(src + seed);
}

// 
// Tracker options go here...
//

setTimeout(function(){
    $importNoCache("http://tracking.code/url");
}, 10 * 1000);

有一个更好的方法吗?

编辑:我逐步浏览了 Firebug 中的代码,并且脚本正常工作。关闭 Firebug 的调试器后,它会像我上面描述的那样使页面空白。

4

2 回答 2

4

如果脚本调用document.write.

你能告诉我们你正在加载的脚本吗?

于 2010-02-15T18:39:53.327 回答
1

代码看起来不错,所以问题可能出在跟踪代码中。如果它包含一个 document.write() 调用,它在正常包含时会正常工作,但在页面完成加载后包含时会清除页面。

编辑:是的,跟踪脚本执行 d=document,然后稍后调用 d.write() ......页面完成加载后,您将无法包含此脚本。

于 2010-02-15T18:43:18.023 回答