Javascript倒计时计时器无法在Safari或IE上运行

时间:2014-12-23 19:33:55

标签: javascript internet-explorer svg safari jsfiddle

我有一个问题。我的CountdownTimer不会在Safari或IE上工作......什么是错的? 也许这是常见的事情,IE很糟糕,想要另一个日期订单。 也许索蒙有一个解决方案...... 我不知道该写什么...但我必须添加更多文字才能发布。 http://jsfiddle.net/4jdudnb1/1/

var jahr = 2015,
    monat = 2,
    tag = 15,
    stunde = 0,
    minute = 0,
    sekunde = 0;
var zielDatum = new Date(jahr, monat - 1, tag, stunde, minute, sekunde);

function countdown() {
    startDatum = new Date();
    if (startDatum < zielDatum) {
        var jahre = 0,
            monate = 0,
            tage = 0,
            stunden = 0,
            minuten = 0,
            sekunden = 0;
        while (startDatum < zielDatum) {
            jahre++;
            startDatum.setFullYear(startDatum.getFullYear() + 1);
        }
        startDatum.setFullYear(startDatum.getFullYear() - 1);
        jahre--;
        while (startDatum < zielDatum) {
            monate++;
            startDatum.setMonth(startDatum.getMonth() + 1);
        }
        startDatum.setMonth(startDatum.getMonth() - 1);
        monate--;
        while (startDatum.getTime() + (24 * 60 * 60 * 1000) < zielDatum) {
            tage++;
            startDatum.setTime(startDatum.getTime() + (24 * 60 * 60 * 1000));
        }
        stunden = Math.floor((zielDatum - startDatum) / (60 * 60 * 1000));
        startDatum.setTime(startDatum.getTime() + stunden * 60 * 60 * 1000);
        minuten = Math.floor((zielDatum - startDatum) / (60 * 1000));
        startDatum.setTime(startDatum.getTime() + minuten * 60 * 1000);
        tage += monate * 30;
        sekunden = Math.floor((zielDatum - startDatum) / 1000);
        if (tage < 10) {
            tage = "00" + tage;
        } else if (tage < 100) {
            tage = "0" + tage;
        }
        document.getElementById("svgdays").innerHTML = tage;
        if (monat < 10) {
            monat = "0" + monat;
        }
        if (stunden < 10) {
            stunden = "0" + stunden;
        }
        if (minuten < 10) {
            minuten = "0" + minuten;
        }
        if (sekunden < 10) {
            sekunden = "0" + sekunden;
        }
        document.getElementById("svghours").innerHTML = stunden;
        document.getElementById("svgminutes").innerHTML = minuten;
        document.getElementById("svgseconds").innerHTML = sekunden;
        setTimeout('countdown()', 200);
    } else {}
}
countdown();

提前致谢并欢迎XMas

1 个答案:

答案 0 :(得分:1)

setTimeout中删除倒计时中的引文和括号

:此

setTimeout('countdown()', 200);

应该

setTimeout(countdown, 200);

此外,您无法访问innerHTML个SVG元素,因此您必须使用textContent

:此

document.getElementById("svghours").innerHTML = stunden;

Shoud Be

document.getElementById("svghours").textContent = stunden;

在IE中检查这个小提琴,它有效 http://jsfiddle.net/4jdudnb1/5/