簡體   English   中英

使用setTimeout重定向Javascript

[英]Javascript Redirect using setTimeout

我有一個按鈕,我想運行一段腳本,然后重定向,但沒有發生任何事情

我有另一個頁面使用類似的代碼,並且有效。 但這個只是不起作用

工作代碼:

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "confirm_order", id: "<?php echo $o_id; ?>", name: "<?php echo $_SESSION['user_name']; ?>" email: "<?php echo $_SESSION['user_email']; ?>"};setTimeout("window.location.href=order.php?order_id=<?php echo $o_id;?>", 100);' class="button">

已在不同頁面上運行的代碼:

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "remove", id: "<?php echo $o_id; ?>", prod: "<?php echo $row_prod['prod_id']; ?>" });setTimeout("window.location.href=window.location.href", 100);'>

現在我知道這與我的setTimeout有關,我只是不確定我做錯了什么。

編輯

現在鏈接:

<a href="javascript:void(0);" class="button confirm">Confirm</a>

鏈接下面的代碼:

<script type="text/javascript">
$('a .confirm').on('click',function(e){
    $.get("features.php",{
        cmd: "confirm_order",
        id: "<?php echo $o_id; ?>",
        name: "<?php echo $_SESSION['user_name']; ?>",
        email: "<?php echo $_SESSION['user_email']; ?>"
    });
    setTimeout(
        function(){
            window.location = "order.php?order_id=<?php echo $o_id;?>" 
        },
    100);
});
</script>

仍然沒有工作,並在代碼中呈現\\"

我同意Felix Kling的評論,你不應該在html屬性中添加那么多代碼。 我看到你正在使用jQuery,所以為什么不把它添加到你的javascript代碼中:

$('a .button').on('click',function(e){
    $.get("features.php",{ 
          cmd: "confirm_order",
          id: "<?php echo $o_id; ?>",
          name: "<?php echo $_SESSION['user_name']; ?>", // you were missing this comma 
          email: "<?php echo $_SESSION['user_email']; ?>"
        }).done(function(){
             window.setTimeout( function(){
                 window.location = "order.php?order_id=<?php echo $o_id;?>";
             }, 100 );
        }); // you where missing this parenthesis          

  e.preventDefault(); 
});

嘗試將文件名置於" (您可以使用\\"將其轉義):

setTimeout("window.location.href=\"order.php?order_id=<?php echo $o_id;?>\";", 100);

您的文件名是一個字符串。 否則JavaScript會期望變量。 這就是setTimeout("window.location.href=window.location.href;", 100); 作品。

我想還有一個逗號丟失了:

name: "<?php echo $_SESSION['user_name']; ?>" email: "<?php echo $_SESSION['user_email']; ?>"

應該是name: "<?php echo $_SESSION['user_name']; ?>", email: "<?php echo $_SESSION['user_email']; ?>"

你也錯過了一個括號。 嘗試將您的代碼更改為:

<a href="javascript:void(0);" onclick='$.get("features.php",{ cmd: "confirm_order", id: "<?php echo $o_id; ?>", name: "<?php echo $_SESSION['user_name']; ?>", email: "<?php echo $_SESSION['user_email']; ?>"});setTimeout("window.location.href=\"order.php?order_id=<?php echo $o_id;?>\";", 100);return false;' class="button">

試試這個

<script type="text/JavaScript">
redirectTime = "1500";
redirectURL = "http://www.natural-environment.com";
function timedRedirect() {
    setTimeout("location.href = redirectURL;",redirectTime);
}
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM