【问题标题】:digital clock not working in FireFox数字时钟在 FireFox 中不起作用
【发布时间】:2015-01-24 20:00:47
【问题描述】:

我制作了一个数字时钟,它适用于 IE(只要我允许 Javascript)和 Google Chrome。但是,我无法让它在 FireFox 中工作。这很奇怪,因为我的网页中有其他 JavaScript 可以在 FireFox 中正常工作(验证、cookie 等)。一定是和火狐浏览器中的数字时钟有关。

我想知道是否有人可以看看 FireFox 是否不允许我使用过的东西。感谢您的时间! :)

JavaScript

                                        /*##### CLOCK #####*/
function displayDate()
{
    var dateObject = new Date();
    var dayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); //Day Array
    var monthArray = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); //Month Array
    var day = dateObject.getDay();
    var month = dateObject.getMonth();

    var dateDiv = document.getElementById("theDate"); //Connect to the HTML theDate ID
        dateDiv.innerText = " " + dayArray[day] + ", " + monthArray[month] + " " + dateObject.getDate() + ", " + dateObject.getFullYear() + " "; //Prints out on screen
}   


function digitalClock() 
{
    function displayTime() 
    {

        var currentTime = new Date();
        var hours = currentTime.getHours();
        var minutes = currentTime.getMinutes();
        var seconds = currentTime.getSeconds();   
        var meridiem = "AM";  // Default set to AM

        if (hours > 12) // if hours is greater than 12
        {
            hours = hours - 12;

            meridiem = "PM";  
        }

        if (hours === 0) //if hours is 0 then show 12
        {
            hours = 12;    
        }

        if(hours < 10) // if hours is less than 10 then add 0 - 9 will read as 09
        {
            hours = "0" + hours;
        }

        if(minutes < 10) // same if statement for minutes and seconds
        {
            minutes = "0" + minutes;
        } 

        if(seconds < 10) 
        { 
            seconds = "0" + seconds;
        }

    var clockDiv = document.getElementById("clock"); //Connects to the HTML clock div
        clockDiv.innerText = hours + ":" + minutes + ":" + seconds + " " + meridiem; // Prints out on screen
}

displayTime();

    setInterval(displayTime, 1000); //setInterval to make the clock tick each second
}

                                        /*##### CLOCK END ##### */

CSS

    #clockContainer 
{

    border-style: solid;
    border-color: #A9D0F5;
    width: 320px;
    padding: 5px;
    border: 15px 
    margin: 25px;
    background-color: gray;
    float: right;
}




                                        /* Java divs */
#clock 
{
    color: white;
    font-family: courier, monospace;
    font-size: 30px;
    text-align: center;
}
#theDate 
{
    color: white;
    font-family: courier, monospace;
    font-size: 20px;
    text-align: center;

}

HTML

<body onload="digitalClock()">


<div id="hContainer">
<div id="img"><img src="../Images/Name1.jpg" width="600" height="100" alt=""/></div>

<div id="clockContainer">
<div id="clock"></div><br />
<div id="theDate"></div>
</div>

</div>
<script type="text/javascript">
/* <![CDATA[ */

displayDate();

/* ]]> */
</script>

我创建了一个 .html 文档,只是为了检查时钟脚本,以确保它不受其他任何东西的影响,只有这个脚本不能正常工作。

【问题讨论】:

  • 开发控制台在 FF 中说什么?
  • 停止使用非标准的innerText,改用textContent?
  • @Mikey 开发控制台是空白的,但是,我确实发现了这个“未声明 HTML 文档的字符编码。如果文档包含字符,则在某些浏览器配置中,该文档将呈现为乱码来自 US-ASCII 范围之外。页面的字符编码必须在文档或传输协议中声明。”但是我环顾四周,我找不到它在哪里。此外,在我点击它后,这句话消失了,即使重新加载页面我也无法再次恢复。
  • 你脑子里有这个 &lt;meta charset="UTF-8"&gt; 和你的文档类型 = &lt;!doctype html&gt;?

标签: javascript html css firefox


【解决方案1】:

Firefox 不支持 innerText,您需要使用 textContext 代替(适用于 FF 和 Chrome - 不确定 IE)。例如

            dateDiv.textContent = " " + dayArray[day] + ", " + monthArray[month] + " " + dateObject.getDate() + ", " + dateObject.getFullYear() + " "; //Prints out on screen

参考:
http://blog.coderlab.us/2005/09/22/using-the-innertext-property-with-firefox/

【讨论】:

  • 我总是使用 .innerHTML 来访问文本,或者在 jQuery 中使用更好的 .text() 来消除所有跨浏览器的差异。
  • @nril 和 mikey - 哦,我的 拍前额 非常感谢你们!!! .innerHTML 适用于所有浏览器,但如果我再次遇到这些问题,我将始终牢记 .textContent。你是救生员,说真的。它现在完美运行。当我使用 jQuery 时,我也会研究 .text()。
猜你喜欢
  • 2016-02-10
  • 2012-06-18
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 2021-02-12
  • 2019-01-09
  • 1970-01-01
相关资源
最近更新 更多