Javascript 倒计时结束时显示另一边

Javascript 倒计时结束时显示另一边,javascript,Javascript,嗨,我是编程新手,我的代码无法正常工作,所以请帮助我 我想通过iframe显示一个方面,当计数器倒计时到某个日期时,如果计数器达到零(过期),则显示另一个方面 这是我的密码: <script language="javascript" type="text/javascript" src="counter.js"></script> <div id="countdown"></div> <iframe id="site" src="h

嗨,我是编程新手,我的代码无法正常工作,所以请帮助我

我想通过iframe显示一个方面,当计数器倒计时到某个日期时,如果计数器达到零(过期),则显示另一个方面

这是我的密码:

    <script language="javascript" type="text/javascript" src="counter.js"></script>
<div id="countdown"></div>
<iframe id="site" src="http://google.com" width="90%" height="400" name="Site">
  <p>Your Browser doesn't support iframe: Please click <a href="http://google.com">here</a></p>
</iframe>
<script>
var test = document.getElementById("countdown");

if (test = "Expired") {
    return;
}
else {
    document.getElementById("site").src = "http://youtube.com";
    document.getElementById("site").herf = "http://youtube.com";
}
</script>

您的浏览器不支持iframe:请单击

var测试=document.getElementById(“倒计时”); 如果(test=“Expired”){ 返回; } 否则{ document.getElementById(“站点”).src=”http://youtube.com"; document.getElementById(“站点”).herf=”http://youtube.com"; }
counter.js工作正常,但第二个脚本工作不正常。即使计数器正在运行,它也会跳到过期

  • 使用
    =
    ==
    比较值
    test='Expired'
    是一个赋值表达式,它在赋值后返回赋值。因此if语句实际上是
    if(“Expired”)
    ,字符串
    “Expired”
    是一个真实值,最后它变成
    if(true)
    ,检查总是转到
    return
    。应该是:
    if(测试=='Expired')

  • 我没有使用counter.js,但是在
    test=document.getElementById(“倒计时”)
    中,变量
    test
    要么是
    null
    要么是DOM元素对象,如果永远不应该等于字符串“Expired”。您可能需要查看counter.js的文档,以找到lib的正确用法。可能类似于(我猜)
    test.innerHTML==“过期”

  • 选中此项:

    JSFIDLE版本:

    代码:

    HTML:

    <div id="countdown"></div>
    <iframe id="site" src="http://onet.com" width="90%" height="400" name="Site">
        <p>Your Browser doesn't support iframe: Please click <a href="http://onet.com">here</a></p>
    </iframe>
    
    function countingEnd() {
         document.getElementById('countdown').innerHTML = 'Expired';
         document.getElementById("site").src = "http://wp.pl";
    }
    
    var end = new Date('12/03/2014 10:14 AM');
    
    var _second = 1000;
    var _minute = _second * 60;
    var _hour = _minute * 60;
    var _day = _hour * 24;
    var timer;
    
    function showRemaining() {
        var now = new Date();
        var distance = end - now;
    
         if (distance < 0) {
            clearInterval(timer);
    
            countingEnd();
    
            return;
         }
    
        var days = Math.floor(distance / _day);
        var hours = Math.floor((distance % _day) / _hour);
        var minutes = Math.floor((distance % _hour) / _minute);
        var seconds = Math.floor((distance % _minute) / _second);
    
        document.getElementById('countdown').innerHTML = days + 'days ';
        document.getElementById('countdown').innerHTML += hours + 'hrs ';
        document.getElementById('countdown').innerHTML += minutes + 'mins ';
        document.getElementById('countdown').innerHTML += seconds + 'secs';
    }
    
    timer = setInterval(showRemaining, 1000);
    
    Javascript(修改的计数代码):

    <div id="countdown"></div>
    <iframe id="site" src="http://onet.com" width="90%" height="400" name="Site">
        <p>Your Browser doesn't support iframe: Please click <a href="http://onet.com">here</a></p>
    </iframe>
    
    function countingEnd() {
         document.getElementById('countdown').innerHTML = 'Expired';
         document.getElementById("site").src = "http://wp.pl";
    }
    
    var end = new Date('12/03/2014 10:14 AM');
    
    var _second = 1000;
    var _minute = _second * 60;
    var _hour = _minute * 60;
    var _day = _hour * 24;
    var timer;
    
    function showRemaining() {
        var now = new Date();
        var distance = end - now;
    
         if (distance < 0) {
            clearInterval(timer);
    
            countingEnd();
    
            return;
         }
    
        var days = Math.floor(distance / _day);
        var hours = Math.floor((distance % _day) / _hour);
        var minutes = Math.floor((distance % _hour) / _minute);
        var seconds = Math.floor((distance % _minute) / _second);
    
        document.getElementById('countdown').innerHTML = days + 'days ';
        document.getElementById('countdown').innerHTML += hours + 'hrs ';
        document.getElementById('countdown').innerHTML += minutes + 'mins ';
        document.getElementById('countdown').innerHTML += seconds + 'secs';
    }
    
    timer = setInterval(showRemaining, 1000);
    
    var end=新日期('2014年3月12日上午10:14');
    var_秒=1000;
    var _minute=_second*60;
    变量(小时)=(分钟)*60 ;;
    var _日=_小时*24;
    无功定时器;
    函数showLeving(){
    var now=新日期();
    var距离=结束-现在;
    如果(距离<0){
    清除间隔(计时器);
    倒计时();
    返回;
    }
    var天数=数学楼层(距离/天数);
    var小时=数学楼层((距离%\u天)/\u小时);
    var分钟=数学楼层(距离%\u小时)/\u分钟);
    var秒=数学楼层((距离%\u分钟)/\u秒);
    document.getElementById('countdown').innerHTML=days+'days';
    document.getElementById('countdown').innerHTML+=hours+'hrs';
    document.getElementById('countdown').innerHTML+=minutes+'mins';
    document.getElementById('countdown').innerHTML+=seconds+'secs';
    }
    定时器=设置间隔(显示剩余,1000);
    
    为什么要将
    test
    对象与
    Expired
    字符串进行比较?因为如果计数器的输出为零,则计数器的输出将过期,但是如果您有其他想法,请告诉我。您从何处获得此计数器?还是你自己写的?这个脚本是从这篇文章的第一个答案中得到的。有没有可能在不丢失实时倒计时的情况下使用php函数从服务器上获取实际时间[var now=new Date()]呢,但是这会占用客户机的时间,我不知道是否可以用PHP从服务器上用JavaScript导入时间。你可以做这样的事情,但看到实时进度不是posibel。例如,你可以用AJAX来做这件事。向PHP生成的页面发出新请求,该页面只返回日期(作为字符串或json)。然后,用JavaScript下载它,解析它,然后抛出倒计时JavaScript函数