错误的来源:document.getElementsByTagName(...)[0]未定义

use*_*731 1 javascript awstats

我正在使用awstats js跟踪器文件awstats_misc_tracker.js,一旦我将其包含在内,它就会在我的控制台中显示此错误:

TypeError: document.getElementsByTagName(...)[0] is undefined
     document.getElementsByTagName("body")[0].appendChild(l);
Run Code Online (Sandbox Code Playgroud)

这是呈现此错误的部分:

var imgsrc1 = awstatsmisctrackerurl+'?screen='+TRKscreen+'&win='+TRKwinsize+'&cdi='+TRKcdi+'&java='+TRKjava;
var imgsrc2 = '&shk='+TRKshk+'&svg='+TRKsvg+'&fla='+TRKfla+'&rp='+TRKrp+'&mov='+TRKmov+'&wma='+TRKwma+'&pdf='+TRKpdf+'&uid='+TRKuserid+'&sid='+TRKsessionid;
//alert(imgsrc1);
//alert(imgsrc2);
var imgsrc=imgsrc1+imgsrc2;
if( document.createElementNS ) {
    var l=document.createElementNS("http://www.w3.org/1999/xhtml","img");
    l.setAttribute("src", imgsrc );
    l.setAttribute("height", "0");
    l.setAttribute("width", "0");
    l.setAttribute("border", "0");
    document.getElementsByTagName("body")[0].appendChild(l);
} else {
    document.write('<img style="display:none;" src="'+ imgsrc +'" height="0" width="0" border="0" />')
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我这个错误的来源以及我如何防止它?

Law*_*ker 5

您将在脚本head定义之前包含脚本.

在HTML文件中找到该脚本并对其进行解析和执行.

您应该在声明主体后包含此脚本.

包含所有javascript的推荐位置位于HTML文件的底部,但有时会破坏遗留代码.

另一种方法是在onload页面事件之后执行脚本或使用查询和"就绪"功能.