我在timer.php中有以下代码。如果我运行文件timer.php,我得到正确的输出如下
time left : 02 min 30 sec
并继续减少。
但是如果使用<? require 'timer.php' ?>
将文件timper.php包含在其他文件中,则仅显示time left :
,并且不会显示实际的计时器倒计时(在Fire fox中)。但是,如果我运行相同的东西,即它显示为correclty。
有什么问题?我的timer.php有流动的代码。
<script >
var sec = 00; // set the seconds
var min = 02 // set the minutes
function countDown() {
sec--;
if (sec == -01) {
sec = 59;
min = min - 1;
} else {
min = min;
}
if (sec<=9) { sec = "0" + sec; }
time = (min<=9 ? "0" + min : min) + " min and " + sec + " sec ";
if (document.getElementById) { theTime.innerHTML = time; }
SD=window.setTimeout("countDown();", 1000);
if (min == '00' && sec == '00') { sec = "00"; window.clearTimeout(SD); }
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
</script>
time left :
<span id="theTime" ></span>
任何人都可以给我一个javascript倒计时器的代码(以分钟为单位),我可以在我的项目中复制pase吗?
答案 0 :(得分:0)
以防它不是拼写错误或“缩写”:你必须在文件名周围加上引号。
<?php require 'timer.php' ?>
否则php将查找constants timer
和php
,当它找不到它时,它会将它们解释为两个单独的字符串并连接它们,因为the dot is interpreted as an operator ,导致两个警告(关于缺失的常量)和require 'timerphp'
(没有计时器和php之间的点)
答案 1 :(得分:0)
如果此代码JS适合您,则表示window.onload存在问题。
<script >
var countDown = function(idEl) {
this.sec = 00; // set the seconds
this.min = 02; // set the minutes
this.el = idEl; // set the minutes
this.SD = null;
this.timer = function(pthis) {
pthis.sec--;
if (pthis.sec == -01) {
pthis.sec = 59;
pthis.min = pthis.min - 1;
} else {
pthis.min = pthis.min; //??
}
if (pthis.sec<=9) { pthis.sec = "0" + pthis.sec; }
var time = (pthis.min<=9 ? "0" + pthis.min : pthis.min) + " min and " + pthis.sec + " sec ";
if (document.getElementById) { document.getElementById(pthis.el).innerHTML = time; }
pthis.SD=window.setTimeout(function(){pthis.timer.apply(pthis, [pthis])}, 1000);
if (pthis.min == '00' && pthis.sec == '00') { pthis.sec = "00"; window.clearTimeout(pthis.SD); }
};
this.timer(this);
}
</script>
time left : <span id="theTime" ></span>
<script>countDown("theTime")</script>
答案 2 :(得分:0)
这是我的JS倒数计时器版本(仅供参考,我在Firefox中测试了你的版本,它对我来说很好)。
<html>
<head>
<title>Timer</title>
<script type="text/javascript">
var Timer = {
// Main method for counting down
countDown: function (displayID, min, sec, callback) {
// Update timer display
document.getElementById(displayID).innerHTML = (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
// If there is time left on the timer, continue counting down
if (sec > 0 || min > 0) {
setTimeout(function () { Timer._countDownCallback(displayID, min, sec, callback); }, 1000);
}
// When time has run out invoke option callback function
else if (typeof callback == "function") {
callback();
}
},
// Internal method for processing remaining time
_countDownCallback: function (displayID, min, sec, callback) {
// Update time left for the timer
sec = (sec > 0 ? sec - 1 : 59);
if (sec == 59) min = (min > 0 ? min - 1 : 59);
// Call main method to update display, etc.
Timer.countDown(displayID, min, sec, callback);
}
};
// Start the timer when the page loads
window.onload = function () {
Timer.countDown("timerDisplay", 2, 30, function () { alert("The time has come!"); });
}
</script>
</head>
<body>
<div>Time left: <span id="timerDisplay"></span></div>
</body>
</html>
答案 3 :(得分:0)
您可以使用此JavaScript Timer课程。
答案 4 :(得分:0)
timer.php
中的javascript很可能无法正常运行,因为在其他文件中包含该文件会导致HTML因某些HTML标记不匹配而中断。或者可能在外部HTML页面中存在另一个错误,该错误会破坏javascript。没有任何更多的细节,很难说你所展示的Javascript代码 - 虽然我不喜欢它并且它有许多问题 - 应该像你想象的那样工作。