Javascript 为什么我的document.getElementsByTagName(';img';).length查询返回0?

Javascript 为什么我的document.getElementsByTagName(';img';).length查询返回0?,javascript,html,web-deployment,Javascript,Html,Web Deployment,我正在尝试建立一个网站,在这个网站上,屏幕上显示的图片种类与url中的哈希值相关联。我试图使它的地方,加载圈出现,并保持可见,直到网页上的所有图像已加载 问题是我试图使用(window).load,以便在加载所有图像后显示并删除加载循环。然而,window.load使圆圈在图像完成之前消失,向用户显示在屏幕上缓慢打印的图像。我找到了一个答案,它使用document.images或document.getElementsByTagName('img')来跟踪网页上每个图像的进度,这样我就可以达到我

我正在尝试建立一个网站,在这个网站上,屏幕上显示的图片种类与url中的哈希值相关联。我试图使它的地方,加载圈出现,并保持可见,直到网页上的所有图像已加载

问题是我试图使用
(window).load
,以便在加载所有图像后显示并删除加载循环。然而,window.load使圆圈在图像完成之前消失,向用户显示在屏幕上缓慢打印的图像。我找到了一个答案,它使用
document.images
document.getElementsByTagName('img')
来跟踪网页上每个图像的进度,这样我就可以达到我想要的效果,而且在我的本地主机服务器上,它确实起作用-页面启动后加载循环出现,直到所有图像都加载完毕为止,一旦发生这种情况,就会切换图像和加载循环的可见性。但是,当我将html和javascript文件上载到网站服务器时,
document.images
最初返回0。但是,如果我要多次正常刷新页面或硬刷新(ctrl-f5)一次,那么在本地主机上看到的情况就会发生。如果我再次刷新,那么返回0的问题又回来了

HTML:

出口

已完成的工作

艰苦的工作

由其他人完成

JavaScript:

const dir = "./submissions/";
var filenames = [];

function testAjax() {
  return $.ajax({
    url: "php/getfilenames.php",
  });
}
var promise = testAjax();
var ogsucname = new Map();
console.log(window.screen.width);
$(document).ready(function() {
  promise.success(function(data) {
    filenames = data.split(',');

    if (!window.location.hash) {
      window.location.href = 'index.html#Home';
    }
    if (window.location.hash) {
      if (window.location.hash.indexOf('Home') == 1) {
        ogsucname = makenames();
        console.log(ogsucname);
        makelinks();
      } else {
        var name = window.location.hash;
        name = name.replace("#", "");
        document.getElementsByClassName('Person_Page')[0].innerHTML = name + "'s Page";
        document.getElementsByClassName('Suc_n_OG')[0].childNodes[1].childNodes[1].innerHTML = "";
        document.getElementsByClassName('Suc_n_OG')[0].childNodes[1].childNodes[1].innerHTML = "Completed By " + name;
        document.title = name + "'s submissions";
        for (var i = 0; i < filenames.length; i++) {
          if (filenames[i].toLowerCase().indexOf(name) > -1) {
            var node = document.createElement("li");
            var button = document.createElement("button");
            var pic = document.createElement("img");
            pic.src = "submissions/" + filenames[i];
            button.setAttribute('onclick', 'tobig(this)');
            button.appendChild(pic);
            node.appendChild(button);
            if (filenames[i].split('_')[2] == null) {
              document.getElementsByClassName('Just_Suc')[0].childNodes[3].appendChild(node);
            } else if (filenames[i].toLowerCase().split('_')[0] == name) {
              document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].appendChild(node);
            } else {
              document.getElementsByClassName('Suc_n_OG')[0].childNodes[3].appendChild(node);
            }
          }
        }
        if (document.getElementsByClassName('Just_Suc')[0].childNodes[3].childNodes[1] == null) {
          console.log('test1');
          document.getElementsByClassName('Just_Suc')[0].style.display = 'none';
        }
        if (document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].childNodes[1] == null) {
          console.log('test2');
          document.getElementsByClassName('OG_n_Suc')[0].style.display = 'none';
        }
        if (document.getElementsByClassName('Suc_n_OG')[0].childNodes[3].childNodes[1] == null) {
          console.log('test3');
          document.getElementsByClassName('Suc_n_OG')[0].style.display = 'none';
        }
      }
    }

    function makenames() {
      var originators = [];
      var successors = [];
      for (var i = 0; i < filenames.length; i++) {
        var ogname = filenames[i].slice(0, filenames[i].indexOf("_")).toLowerCase();
        ogname = ogname.replace(".pn", "");
        originators.push(ogname);
        var sucname = filenames[i].split('_')[2];
        if (sucname != null) {
          var name = sucname.slice(0, sucname.indexOf("."));
          var lowername = name.toLowerCase();
          successors.push(lowername);
        }
      }
      var originators = [...new Set(originators)];
      console.log(originators);
      var tempmap = new Map();
      for (var i = 0; i < originators.length; i++) {
        var count = successors.reduce(function(n, val) {
          return n + (val === originators[i]);
        }, 0);
        tempmap.set(originators[i], count);
      }
      var contnames = new Map([...tempmap.entries()].sort((a, b) => b[1] - a[1]));
      return contnames;
    }

    function makelinks() {
      for (let [key, value] of ogsucname) {
        var node = document.createElement("li");
        var link = document.createElement("a");
        var textnode = document.createTextNode(key);
        link.href = 'javascript:pageredirect('+key+')';
        link.id = key;
        node.id = key + "listitem";
        link.setAttribute('onclick', "pagegen(this)");
        link.appendChild(textnode);
        node.appendChild(link);
        document.getElementById('buddy_load').appendChild(node);
        const style = document.createElement('style');
        var iconspath = "icons/axe_" + value + ".gif"
        var iditer = "#" + key + "listitem";
        style.textContent = iditer + "::before{content:''; display: flex;flex-direction: row;  height: 30px; width: 30px; background:url(" + iconspath + ") no-repeat; background-size: 30px; position:relative;margin-right: 20px;z-index:0;}";
        document.getElementById(key).append(style);
      }
    };

    function pagegen(obj) {
      window.location.href = 'buddypresent.html#' + obj.id;
    }

    function tobig(obj) {
      var getpic = obj.children[0].src;
      var bigimageload = document.getElementsByClassName("activate");
      var ogbox = document.getElementsByClassName("ogname");
      var sucbox = document.getElementsByClassName("sucname");
      var getnames = getpic.substring(getpic.lastIndexOf("."), getpic.lastIndexOf("/")).replace("/", "").toLowerCase();
      var getog = getnames.split('_')[0];
      var getsuc = getnames.split('_')[2];
      makenamelink(getog, ogbox[0]);
      makenamelink(getsuc, sucbox[0]);
      var getimageframe = document.getElementsByClassName("largeimageload");
      var pic = document.createElement("img");
      getimageframe[0].innerHTML = "";
      pic.src = getpic;
      bigimageload[0].style.display = 'block';
      getimageframe[0].appendChild(pic);
    }


  });
});
$(window).load(function() {
  if (window.location.hash) {
    if (window.location.hash.indexOf('Home') == 1) {
      document.getElementsByClassName('loader')[0].style.visibility = "hidden";
      document.getElementById("buddy_load").style.visibility = "visible";
    } else {
      var imgs = document.getElementsByTagName('img');
      var len = imgs.length;
      console.log(len);
      var counter = 0;
      for (var i = 0; i < imgs.length; i++) {
        if (imgs[i].complete) {
          incrementCounter();
        } else {
          imgs[i].addEventListner('load', incrementCounter, false);
        }
      }
    }
  }
  function incrementCounter() {
    counter++;
    if (counter == len) {
      document.getElementsByClassName('loader')[0].style.visibility = "hidden";
      document.getElementsByClassName("ContestantContent")[0].style.display = "block";
    }
  }
});

function closetobig() {
  var bigimageload = document.getElementsByClassName("activate");
  bigimageload[0].style.display = 'none';
}

function tobig(obj) {
  var getpic = obj.children[0].src;
  var bigimageload = document.getElementsByClassName("activate");
  var ogbox = document.getElementsByClassName("ogname");
  var sucbox = document.getElementsByClassName("sucname");
  var getnames = getpic.substring(getpic.lastIndexOf("."), getpic.lastIndexOf("/")).replace("/", "").toLowerCase();
  var getog = getnames.split('_')[0];
  var getsuc = getnames.split('_')[2];
  makenamelink(getog, ogbox[0]);
  makenamelink(getsuc, sucbox[0]);
  var getimageframe = document.getElementsByClassName("largeimageload");
  var pic = document.createElement("img");
  getimageframe[0].innerHTML = "";
  pic.src = getpic;
  bigimageload[0].style.display = 'block';
  getimageframe[0].appendChild(pic);
}

function makenamelink(name, box) {
  box.innerHTML = "";
  if (name != null) {
    var para = document.createElement("p");
    // para.href = "#";
    var paranode = document.createTextNode(name);
    // para.id = name;
    // para.setAttribute('onclick', "pageredirect(this)");
    // para.appendChild(paranode);
    box.innerHTML = name;
    box.parentNode.id = name;
    box.parentNode.setAttribute('onclick', "pageredirect(this)");
    // box.appendChild(name);
  }
}

function pageredirect(obj) {
  window.location.href = 'buddypresent.html#' + obj.id;
  window.onhashchange = function() {
    window.location.reload(true);
  }
}

function reloadpage() {
  // window.location.reload(false);
  window.location.reload(true)
}

function gohome() {
  window.location.href = 'index.html#Home';
}
const dir=“./submissions/”;
var文件名=[];
函数testAjax(){
返回$.ajax({
url:“php/getfilenames.php”,
});
}
var promise=testAjax();
var ogsucname=新映射();
控制台.日志(窗口.屏幕.宽度);
$(文档).ready(函数(){
承诺.成功(功能(数据){
filenames=data.split(',');
if(!window.location.hash){
window.location.href='index.html#Home';
}
if(window.location.hash){
if(window.location.hash.indexOf('Home')==1){
ogsucname=makenames();
console.log(ogsucname);
makelinks();
}否则{
var name=window.location.hash;
名称=名称。替换(“#”和“”);
document.getElementsByClassName('Person_Page')[0]。innerHTML=name+“'s Page”;
document.getElementsByClassName('Suc_n_OG')[0]。childNodes[1]。childNodes[1]。innerHTML=“”;
document.getElementsByClassName('Suc_n_OG')[0]。childNodes[1]。childNodes[1]。innerHTML=“完成人”+name;
document.title=name+“提交的文件”;
对于(var i=0;i-1){
var节点=document.createElement(“li”);
var button=document.createElement(“按钮”);
var pic=document.createElement(“img”);
pic.src=“submissions/”+文件名[i];
setAttribute('onclick','tobig(this');
按钮。追加子项(pic);
追加子节点(按钮);
if(文件名[i].split(“”“)[2]==null){
document.getElementsByClassName('Just_Suc')[0]。childNodes[3]。appendChild(节点);
}else if(文件名[i].toLowerCase().split(“”“)[0]==name){
document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].appendChild(节点);
}否则{
document.getElementsByClassName('Suc_n_OG')[0].childNodes[3]。appendChild(节点);
}
}
}
if(document.getElementsByClassName('Just_Suc')[0].childNodes[3].childNodes[1]==null){
log('test1');
document.getElementsByClassName('Just_Suc')[0].style.display='none';
}
if(document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].childNodes[1]==null){
log('test2');
document.getElementsByClassName('OG_n_Suc')[0].style.display='none';
}
if(document.getElementsByClassName('Suc_n_OG')[0].childNodes[3].childNodes[1]==null){
log('test3');
document.getElementsByClassName('Suc_n_OG')[0].style.display='none';
}
}
}
函数makenames(){
风险值发起人=[];
风险值=[];
对于(var i=0;ib[1]-a[1]);
返回名称;
}
函数makelinks(){
for(让ogsucname的[key,value]{
var节点=文档。
const dir = "./submissions/";
var filenames = [];

function testAjax() {
  return $.ajax({
    url: "php/getfilenames.php",
  });
}
var promise = testAjax();
var ogsucname = new Map();
console.log(window.screen.width);
$(document).ready(function() {
  promise.success(function(data) {
    filenames = data.split(',');

    if (!window.location.hash) {
      window.location.href = 'index.html#Home';
    }
    if (window.location.hash) {
      if (window.location.hash.indexOf('Home') == 1) {
        ogsucname = makenames();
        console.log(ogsucname);
        makelinks();
      } else {
        var name = window.location.hash;
        name = name.replace("#", "");
        document.getElementsByClassName('Person_Page')[0].innerHTML = name + "'s Page";
        document.getElementsByClassName('Suc_n_OG')[0].childNodes[1].childNodes[1].innerHTML = "";
        document.getElementsByClassName('Suc_n_OG')[0].childNodes[1].childNodes[1].innerHTML = "Completed By " + name;
        document.title = name + "'s submissions";
        for (var i = 0; i < filenames.length; i++) {
          if (filenames[i].toLowerCase().indexOf(name) > -1) {
            var node = document.createElement("li");
            var button = document.createElement("button");
            var pic = document.createElement("img");
            pic.src = "submissions/" + filenames[i];
            button.setAttribute('onclick', 'tobig(this)');
            button.appendChild(pic);
            node.appendChild(button);
            if (filenames[i].split('_')[2] == null) {
              document.getElementsByClassName('Just_Suc')[0].childNodes[3].appendChild(node);
            } else if (filenames[i].toLowerCase().split('_')[0] == name) {
              document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].appendChild(node);
            } else {
              document.getElementsByClassName('Suc_n_OG')[0].childNodes[3].appendChild(node);
            }
          }
        }
        if (document.getElementsByClassName('Just_Suc')[0].childNodes[3].childNodes[1] == null) {
          console.log('test1');
          document.getElementsByClassName('Just_Suc')[0].style.display = 'none';
        }
        if (document.getElementsByClassName('OG_n_Suc')[0].childNodes[3].childNodes[1] == null) {
          console.log('test2');
          document.getElementsByClassName('OG_n_Suc')[0].style.display = 'none';
        }
        if (document.getElementsByClassName('Suc_n_OG')[0].childNodes[3].childNodes[1] == null) {
          console.log('test3');
          document.getElementsByClassName('Suc_n_OG')[0].style.display = 'none';
        }
      }
    }

    function makenames() {
      var originators = [];
      var successors = [];
      for (var i = 0; i < filenames.length; i++) {
        var ogname = filenames[i].slice(0, filenames[i].indexOf("_")).toLowerCase();
        ogname = ogname.replace(".pn", "");
        originators.push(ogname);
        var sucname = filenames[i].split('_')[2];
        if (sucname != null) {
          var name = sucname.slice(0, sucname.indexOf("."));
          var lowername = name.toLowerCase();
          successors.push(lowername);
        }
      }
      var originators = [...new Set(originators)];
      console.log(originators);
      var tempmap = new Map();
      for (var i = 0; i < originators.length; i++) {
        var count = successors.reduce(function(n, val) {
          return n + (val === originators[i]);
        }, 0);
        tempmap.set(originators[i], count);
      }
      var contnames = new Map([...tempmap.entries()].sort((a, b) => b[1] - a[1]));
      return contnames;
    }

    function makelinks() {
      for (let [key, value] of ogsucname) {
        var node = document.createElement("li");
        var link = document.createElement("a");
        var textnode = document.createTextNode(key);
        link.href = 'javascript:pageredirect('+key+')';
        link.id = key;
        node.id = key + "listitem";
        link.setAttribute('onclick', "pagegen(this)");
        link.appendChild(textnode);
        node.appendChild(link);
        document.getElementById('buddy_load').appendChild(node);
        const style = document.createElement('style');
        var iconspath = "icons/axe_" + value + ".gif"
        var iditer = "#" + key + "listitem";
        style.textContent = iditer + "::before{content:''; display: flex;flex-direction: row;  height: 30px; width: 30px; background:url(" + iconspath + ") no-repeat; background-size: 30px; position:relative;margin-right: 20px;z-index:0;}";
        document.getElementById(key).append(style);
      }
    };

    function pagegen(obj) {
      window.location.href = 'buddypresent.html#' + obj.id;
    }

    function tobig(obj) {
      var getpic = obj.children[0].src;
      var bigimageload = document.getElementsByClassName("activate");
      var ogbox = document.getElementsByClassName("ogname");
      var sucbox = document.getElementsByClassName("sucname");
      var getnames = getpic.substring(getpic.lastIndexOf("."), getpic.lastIndexOf("/")).replace("/", "").toLowerCase();
      var getog = getnames.split('_')[0];
      var getsuc = getnames.split('_')[2];
      makenamelink(getog, ogbox[0]);
      makenamelink(getsuc, sucbox[0]);
      var getimageframe = document.getElementsByClassName("largeimageload");
      var pic = document.createElement("img");
      getimageframe[0].innerHTML = "";
      pic.src = getpic;
      bigimageload[0].style.display = 'block';
      getimageframe[0].appendChild(pic);
    }


  });
});
$(window).load(function() {
  if (window.location.hash) {
    if (window.location.hash.indexOf('Home') == 1) {
      document.getElementsByClassName('loader')[0].style.visibility = "hidden";
      document.getElementById("buddy_load").style.visibility = "visible";
    } else {
      var imgs = document.getElementsByTagName('img');
      var len = imgs.length;
      console.log(len);
      var counter = 0;
      for (var i = 0; i < imgs.length; i++) {
        if (imgs[i].complete) {
          incrementCounter();
        } else {
          imgs[i].addEventListner('load', incrementCounter, false);
        }
      }
    }
  }
  function incrementCounter() {
    counter++;
    if (counter == len) {
      document.getElementsByClassName('loader')[0].style.visibility = "hidden";
      document.getElementsByClassName("ContestantContent")[0].style.display = "block";
    }
  }
});

function closetobig() {
  var bigimageload = document.getElementsByClassName("activate");
  bigimageload[0].style.display = 'none';
}

function tobig(obj) {
  var getpic = obj.children[0].src;
  var bigimageload = document.getElementsByClassName("activate");
  var ogbox = document.getElementsByClassName("ogname");
  var sucbox = document.getElementsByClassName("sucname");
  var getnames = getpic.substring(getpic.lastIndexOf("."), getpic.lastIndexOf("/")).replace("/", "").toLowerCase();
  var getog = getnames.split('_')[0];
  var getsuc = getnames.split('_')[2];
  makenamelink(getog, ogbox[0]);
  makenamelink(getsuc, sucbox[0]);
  var getimageframe = document.getElementsByClassName("largeimageload");
  var pic = document.createElement("img");
  getimageframe[0].innerHTML = "";
  pic.src = getpic;
  bigimageload[0].style.display = 'block';
  getimageframe[0].appendChild(pic);
}

function makenamelink(name, box) {
  box.innerHTML = "";
  if (name != null) {
    var para = document.createElement("p");
    // para.href = "#";
    var paranode = document.createTextNode(name);
    // para.id = name;
    // para.setAttribute('onclick', "pageredirect(this)");
    // para.appendChild(paranode);
    box.innerHTML = name;
    box.parentNode.id = name;
    box.parentNode.setAttribute('onclick', "pageredirect(this)");
    // box.appendChild(name);
  }
}

function pageredirect(obj) {
  window.location.href = 'buddypresent.html#' + obj.id;
  window.onhashchange = function() {
    window.location.reload(true);
  }
}

function reloadpage() {
  // window.location.reload(false);
  window.location.reload(true)
}

function gohome() {
  window.location.href = 'index.html#Home';
}