Как реализовать обратный отсчет и перенаправление в JavaScript

#javascript #html #redirect

#javascript #HTML #перенаправление

Вопрос:

Я обыскал сотни потоков, но не смог найти решение для своей проблемы. Я хочу, чтобы после того, как обратный отсчет достигнет 0, вы были перенаправлены на новый веб-сайт.

Пока код выглядит следующим образом:

 <html>

<script type="text/javascript">

var current="New webiste is here!"

var year=2011;        
var month=11;          
var day=09;          
var hour=13;         
var minute=38;        
var tz= 1;          

var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function countdown(yr,m,d,hr,min){
    theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
    var today=new Date();
    var todayy=today.getYear();
    if (todayy < 1000) {
    todayy =1900; }
    var todaym=today.getMonth();
    var todayd=today.getDate();
    var todayh=today.getHours();
    var todaymin=today.getMinutes();
    var todaysec=today.getSeconds();
    var todaystring1=montharray[todaym] " " todayd ", " todayy " " todayh ":" todaymin ":" todaysec;
    var todaystring=Date.parse(todaystring1) (tz*1000*60*60);
    var futurestring1=(montharray[m-1] " " d ", " yr " " hr ":" min);
    var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
    var dd=futurestring-todaystring;
    var dday=Math.floor(dd/(60*60*1000*24)*1);
    var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
    var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
    var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
    if(dday<=0amp;amp;dhour<=0amp;amp;dmin<=0amp;amp;dsec<=0){
        document.getElementById('count2').innerHTML=current;
        document.getElementById('count2').style.display="inline";
        document.getElementById('count2').style.width="390px";
        document.getElementById('dday').style.display="none";
        document.getElementById('dhour').style.display="none";
        document.getElementById('dmin').style.display="none";
        document.getElementById('dsec').style.display="none";
        document.getElementById('days').style.display="none";
        document.getElementById('hours').style.display="none";
        document.getElementById('minutes').style.display="none";
        document.getElementById('seconds').style.display="none";
        return;
    }
    else {
        document.getElementById('count2').style.display="none";
        document.getElementById('dday').innerHTML=dday;
        document.getElementById('dhour').innerHTML=dhour;
        document.getElementById('dmin').innerHTML=dmin;
        document.getElementById('dsec').innerHTML=dsec;
        setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);
    }
}

</script>
</head>
<body onLoad="countdown(year,month,day,hour,minute)">
</body>
</html>
  

Ответ №1:

Может быть так просто?

 <html>

<script type="text/javascript">

var current="http://www.google.com"

var year=2011;        
var month=11;          
var day=09;          
var hour=13;         
var minute=30;        
var tz= 1;          

var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function countdown(yr,m,d,hr,min){
    theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
    var today=new Date();
    var todayy=today.getYear();
    if (todayy < 1000) {
    todayy =1900; }
    var todaym=today.getMonth();
    var todayd=today.getDate();
    var todayh=today.getHours();
    var todaymin=today.getMinutes();
    var todaysec=today.getSeconds();
    var todaystring1=montharray[todaym] " " todayd ", " todayy " " todayh ":" todaymin ":" todaysec;
    var todaystring=Date.parse(todaystring1) (tz*1000*60*60);
    var futurestring1=(montharray[m-1] " " d ", " yr " " hr ":" min);
    var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
    var dd=futurestring-todaystring;
    var dday=Math.floor(dd/(60*60*1000*24)*1);
    var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
    var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
    var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
    if(dday<=0amp;amp;dhour<=0amp;amp;dmin<=0amp;amp;dsec<=0){
        window.location = current;
    }
    else {
        document.getElementById('count2').style.display="none";
        document.getElementById('dday').innerHTML=dday;
        document.getElementById('dhour').innerHTML=dhour;
        document.getElementById('dmin').innerHTML=dmin;
        document.getElementById('dsec').innerHTML=dsec;
        setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);
    }
}

</script>
</head>
<body onLoad="countdown(year,month,day,hour,minute)">
</body>
</html>
  

Комментарии:

1. В этом написанном вами скрипте вы не перенаправляетесь автоматически. Вы перенаправляетесь только при обновлении страницы, Как я мог бы добавить сюда какой-то счетчик?