Javascript延迟加载空白页面

时间:2010-02-15 18:38:38

标签: javascript delay

在我正在处理的网站上,我需要在页面加载后10秒加载跟踪脚本。我找到了a snippet to do so,但我遇到了麻烦。等待10秒后,页面变白。 URL似乎没有改变,但页面不再可见,并且悸动者开始旋转。

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

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的调试器后,如上所述,它会使页面空白。

2 个答案:

答案 0 :(得分:4)

如果脚本调用document.write,则会发生这种情况。

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

答案 1 :(得分:1)

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

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