Javascript 倒数计时器在 Safari 或 IE 上不起作用

Javascript countdown Timer doesnt work on Safari or IE

本文关键字:IE 不起作用 Safari 倒数 计时器 Javascript      更新时间:2023-09-26

我有一个问题。我的倒数计时器无法在 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();

提前感谢和圣诞快乐

在你的setTimeout去掉倒计时中的引号和括号

setTimeout('countdown()', 200);

应该是

setTimeout(countdown, 200);

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

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

寿德·贝

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

在IE中检查这个小提琴,它可以工作http://jsfiddle.net/4jdudnb1/5/