Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOMContentLoaded未加载_Javascript - Fatal编程技术网

Javascript DOMContentLoaded未加载

Javascript DOMContentLoaded未加载,javascript,Javascript,底层代码试图在加载domcontent后调用函数。然而,它似乎没有开火。函数输出到动态生成表中的div。 我要做的是加载倒计时(…),为加载到表中的每个项目放置一个倒计时计时器。我使用这个addeventlistener是因为我读到我需要在使用div标记之前加载DOM 此表加载一个xml文档 function loadXMLDoc() { var table; var i; var xmlhttp = false; if (window.XMLHttpReques

底层代码试图在加载domcontent后调用函数。然而,它似乎没有开火。函数输出到动态生成表中的div。 我要做的是加载倒计时(…),为加载到表中的每个项目放置一个倒计时计时器。我使用这个addeventlistener是因为我读到我需要在使用div标记之前加载DOM

此表加载一个xml文档

function loadXMLDoc() {
    var table;
    var i;
    var xmlhttp = false;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET", "auction.xml", false);
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;
    table = ("<table>");
    var x = xmlDoc.getElementsByTagName("Product");
    for (i = 0; i < x.length; i++) {
        table += ("<tr><td>Item Name : ");
        table += (x[i].getElementsByTagName("ItemName")[0].childNodes[0].nodeValue);
        iname = (x[i].getElementsByTagName("ItemName")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        table += ("<tr><td>Start Price : ");
        table += (x[i].getElementsByTagName("StartPrice")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        table += ("<tr><td>Category : ");
        table += (x[i].getElementsByTagName("Category")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        table += ("<tr><td>Current Bid : ");
        table += (x[i].getElementsByTagName("BidPrice")[0].childNodes[0].nodeValue);
        icurrent = (x[i].getElementsByTagName("BidPrice")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        table += ("<tr><td>Buy It Now Price : ");
        table += (x[i].getElementsByTagName("NowPrice")[0].childNodes[0].nodeValue);
        inow = (x[i].getElementsByTagName("NowPrice")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        table += ("<tr><td>Highest Bidder : ");
        table += (x[i].getElementsByTagName("HighestBidder")[0].childNodes[0].nodeValue);
        table += ("</td></tr>");
        var yr = 2018;
        var m = 5;
        var d = 10;
        var hr = 12;
        var min = 12;
        table += ("<tr>");;
        table += ("<td> Time Left : </td>");
        table += ("<td><div id=\"dday\"></div></td>");
        table += ("<td><div id=\"dhour\"></div></td>");
        table += ("<td><div id=\"dmin\"></div></td>");
        table += ("<td><div id=\"dsec\"></div></td>");
        table += ("</tr>");
        table += ("<script>");
        table += ("xmlDoc.addEventListener(\"DOMContentLoaded\",    countdown(yr,m,d,hr,min),false");
        table += ("</script>");
    }
}
table += ("</table>");
document.getElementById('listinglist').innerHTML = table;
//countdown(yr,m,d,hr,min);
}

function countdown(yr, m, d, hr, min) {
theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
var today=new Date();
var todayy=today.getYear();
if (todayy < 1000) {todayy+=1900;}
var todaym=today.getMonth();
var todayd=today.getDate();
var todayh=today.getHours();
var todaymin=today.getMinutes();
var todaysec=today.getSeconds();
var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
var todaystring=Date.parse(todaystring1)+(tz*1000*60*60);
var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min);
var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
var dd=futurestring-todaystring;
var dday=Math.floor(dd/(60*60*1000*24)*1);
var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
    document.getElementById('dday').innerHTML = "HH";
    document.getElementById('dhour').innerHTML = dhour;
    document.getElementById('dmin').innerHTML = dmin;
    document.getElementById('dsec').innerHTML = dsec;
    setTimeout("countdown(theyear,themonth,theday,thehour,theminute)", 1000);

}
函数loadXMLDoc(){
var表;
var i;
var xmlhttp=false;
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,“auction.xml”,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
表=(“”);
var x=xmlDoc.getElementsByTagName(“产品”);
对于(i=0;i

有什么建议吗?

DOMContentLoaded事件用于通知您原始HTML页面何时已加载,页面下载HTML中的DOM现在可用并可供使用

您的倒计时器根本不需要使用DOMContentLoaded,因为您确切地知道内容出现的时间(当您自己插入内容时)

我不太明白你到底想用倒计时器做什么,但我认为你可以有一个计时器(你不需要插入
标签-你可以在插入内容后立即启动你自己的计时器)来更新你的倒计时

仅供参考,您的代码存在各种各样的问题:

  • 您似乎试图使用
    table
    变量将生成的内容添加到页面中,但您是在
    loadXMLDoc()
    函数之外执行此操作的,而
    table
    变量就存在于此函数中。我想您应该在函数内部执行此操作

  • 您似乎没有在任何地方实际调用
    loadXMLDoc()

  • 在调用
    loadXMLDoc()
    之前,可能需要使用DOMContentLoaded,但不需要将其用于
    countdown()
    函数

  • 这里不需要插入脚本标记。插入表后,您可以直接执行所需的任何代码

  • 您正在使用同步Ajax,这在浏览器中是一种糟糕的用户体验。您应该使用异步Ajax,这将需要一些不同的代码来处理响应

  • 我无法想象您实际上需要支持IE5和IE6(或者甚至是IE7或IE8),以便删除Ajax代码的这一部分

  • 倒计时函数似乎试图使用不存在的变量名

  • 您正在使用具有相同ID值的多个元素。您不能这样做。ID在HTML文档中必须是唯一的

  • function loadXMLDoc() {
        var table;
        var i;
        var xmlhttp = false;
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET", "auction.xml", false);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;
        table = ("<table>");
        var x = xmlDoc.getElementsByTagName("Product");
        for (i = 0; i < x.length; i++) {
            table += ("<tr><td>Item Name : ");
            table += (x[i].getElementsByTagName("ItemName")[0].childNodes[0].nodeValue);
            iname = (x[i].getElementsByTagName("ItemName")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            table += ("<tr><td>Start Price : ");
            table += (x[i].getElementsByTagName("StartPrice")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            table += ("<tr><td>Category : ");
            table += (x[i].getElementsByTagName("Category")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            table += ("<tr><td>Current Bid : ");
            table += (x[i].getElementsByTagName("BidPrice")[0].childNodes[0].nodeValue);
            icurrent = (x[i].getElementsByTagName("BidPrice")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            table += ("<tr><td>Buy It Now Price : ");
            table += (x[i].getElementsByTagName("NowPrice")[0].childNodes[0].nodeValue);
            inow = (x[i].getElementsByTagName("NowPrice")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            table += ("<tr><td>Highest Bidder : ");
            table += (x[i].getElementsByTagName("HighestBidder")[0].childNodes[0].nodeValue);
            table += ("</td></tr>");
            var yr = 2018;
            var m = 5;
            var d = 10;
            var hr = 12;
            var min = 12;
            table += ("<tr>");;
            table += ("<td> Time Left : </td>");
            table += ("<td><div id=\"dday\"></div></td>");
            table += ("<td><div id=\"dhour\"></div></td>");
            table += ("<td><div id=\"dmin\"></div></td>");
            table += ("<td><div id=\"dsec\"></div></td>");
            table += ("</tr>");
            table += ("<script>");
            table += ("xmlDoc.addEventListener(\"DOMContentLoaded\",    countdown(yr,m,d,hr,min),false");
            table += ("</script>");
        }
    }
    table += ("</table>");
    document.getElementById('listinglist').innerHTML = table;
    //countdown(yr,m,d,hr,min);
    }
    
    function countdown(yr, m, d, hr, min) {
    theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
    var today=new Date();
    var todayy=today.getYear();
    if (todayy < 1000) {todayy+=1900;}
    var todaym=today.getMonth();
    var todayd=today.getDate();
    var todayh=today.getHours();
    var todaymin=today.getMinutes();
    var todaysec=today.getSeconds();
    var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
    var todaystring=Date.parse(todaystring1)+(tz*1000*60*60);
    var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min);
    var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
    var dd=futurestring-todaystring;
    var dday=Math.floor(dd/(60*60*1000*24)*1);
    var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
    var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
    var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
        document.getElementById('dday').innerHTML = "HH";
        document.getElementById('dhour').innerHTML = dhour;
        document.getElementById('dmin').innerHTML = dmin;
        document.getElementById('dsec').innerHTML = dsec;
        setTimeout("countdown(theyear,themonth,theday,thehour,theminute)", 1000);
    
    }
    

    您缺少相关代码。什么是
    xmlDoc
    ?什么是
    table
    。您要创建的内容在哪里