在我正在处理的网站上,我需要在页面加载后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的调试器后,如上所述,它会使页面空白。
答案 0 :(得分:4)
如果脚本调用document.write
,则会发生这种情况。
您能告诉我们您正在加载的脚本吗?
答案 1 :(得分:1)
代码看起来很好,所以问题可能出在跟踪代码中。如果它包含document.write()调用,它将在正常包含时正常工作,但在页面加载完成后包含页面时将其擦除。
编辑: 是的,跟踪脚本执行d = document,然后稍后调用d.write()...在页面加载完成后,您将无法包含此脚本。