您好我正在使用Javascript设置超时来运行某个功能。
如何在接近结束时显示超时的最后10秒?
var a = setTimeout('someFunction()', 10000);
是否能够使用存储在变量中的值显示某些内容?
由于
答案 0 :(得分:4)
我为你创建了一个小型演示,
http://jsfiddle.net/praveen_prasad/DYaan/1/
<div id="target" style="display:none">
target
</div>
var target,
allotedTimeForWork=100 /*you can change this*/
;
var handler = setTimeout(function(){
if(!target)
{
target=document.getElementById('target');
}
target.style.display="block";
startTicker();
}, allotedTimeForWork);
function startTicker()
{
var counter=10;
var tickerHandler= window.setInterval(function(){
if(counter>0)
{
//cache target
target.innerHTML="you have "+counter +" seconds left";
counter--;
}
else
{
target.innerHTML="time over";
clearInterval(tickerHandler);
}
},1000);
}
答案 1 :(得分:2)
无法直接获取超时的剩余时间。 您可以尝试每秒创建多个超时,或者在启动超时时存储另一个变量。
答案 2 :(得分:1)
我会使用两次超时。
第一个时间减去5秒,它调用一个具有第二个超时(5秒)的功能,这将显示计时器。
答案 3 :(得分:1)
看看这里:http://jsfiddle.net/VCAnm/
HTML:
<span id="aaa">10</span>
JavaScript的:
setInterval(function() {
var elem = document.getElementById('aaa');
elem.innerHTML = elem.innerHTML - 1;
}, 1000);
答案 4 :(得分:1)
为超时设置2个计时器,为警告设置另一个计时器
var warn_time = 5000;
var function_name = 'someFunction()';
var a = setTimeout('warnFunction(function_name, warn_time)', 10000 - warn_time);
function warnFunction(function_name, time) {
alert('only ' + time + ' seconds left'); //use a div or whatever to display
var b = setTimeout(function_name, time);
}