web-dev-qa-db-ja.com

指定された時間後にURLにリダイレクトするJQuery

一定期間後にJQueryを使用して特定のURLにリダイレクトする方法はありますか?

53
Brian

setTimeout() 関数を使用できます:

// Your delay in milliseconds
var delay = 1000; 
setTimeout(function(){ window.location = URL; }, delay);
107
Rion Williams

これにはjQueryは本当に必要ありません。 setTimeout メソッドを使用してプレーンJavaScriptで実行できます。

// redirect to google after 5 seconds
window.setTimeout(function() {
    window.location.href = 'http://www.google.com';
}, 5000);
51
Darin Dimitrov
$(document).ready(function() {
    window.setInterval(function() {
    var timeLeft    = $("#timeLeft").html();
        if(eval(timeLeft) == 0) {
                window.location= ("http://www.technicalkeeda.com");
        } else {
            $("#timeLeft").html(eval(timeLeft)- eval(1));
        }
    }, 1000);
});
13
Vicky

使用できます

    $(document).ready(function(){
      setTimeout(function() {
       window.location.href = "http://test.example.com/;"
      }, 5000);
    });
8
Mandeep Singh

ただ使用する:

setTimeout("window.location.href='yoururl';",4000);

..「4000」はm.secondです

5
Attila Nagy

はい、解決策は setTimeout を次のように使用することです:

var delay = 10000;
var url = "https://stackoverflow.com";
var timeoutID = setTimeout(function() {
    window.location.href = url;
}, delay);

結果がtimeoutIDに保存されたことに注意してください。何らかの理由で注文をキャンセルする必要がある場合は、電話するだけです

clearTimeout(timeoutID);
3
Lajos Arpad

X秒のプロンプトを出し、リダイレクトしてURLを設定する簡単なデモを作成しました。カウントが終了するまで待てない場合は、カウンターをクリックしてすぐにリダイレクトします。ページの中央で時間をパルスしながらカウントダウンするシンプルなカウンター。 onclickまたはいくつかのページがロードされている間に実行できます。

LIVE DEMO ONLOAD

LIVE DEMO ONCLICK

また、このためにgithubリポジトリを作成しました: https://github.com/GlupiJas/redirect-counter-plugin

JSコードの例:

// FUNCTION CODE
function gjCountAndRedirect(secounds, url)
{

        $('#gj-counter-num').text(secounds);

        $('#gj-counter-box').show();

    var interval = setInterval(function()
    {

        secounds = secounds - 1;

        $('#gj-counter-num').text(secounds);

        if(secounds == 0)
        {

            clearInterval(interval);
            window.location = url;
            $('#gj-counter-box').hide();

        }

    }, 1000);

    $('#gj-counter-box').click(function() //comment it out -if you dont want to allo count skipping
    {
        clearInterval(interval);
        window.location = url;

    });
}

// USE EXAMPLE
$(document).ready(function() {
    //var
    var gjCountAndRedirectStatus = false; //prevent from seting multiple Interval

    //call
    $('h1').click(function(){
        if(gjCountAndRedirectStatus == false)
        {
            gjCountAndRedirect(10, document.URL);
            gjCountAndRedirectStatus = true;
        }
    });

});
2
DevWL