setTimeOut在重定向函数上重定向两次

时间:2017-09-26 09:48:43

标签: javascript php jquery wordpress html5

更新 - 我正在处理一个简单的功能,在点击后将您重定向到包含您在表单中选择的产品的外部页面。问题是我需要首先重定向到#34;感谢您购买"页面然后重定向到外部...这是我的代码以及我是如何尝试的。

 function addToListAndRedirect(item_id){
var email = jQuery("[name='your-email']").val();
var amount = jQuery("[name='vinbrevet-contact-amount']").val();
var subscription = {
    ListIds: [
        "beeb2f48-5265-443e-960f-4f995d8c2942"
    ],  
    ConfirmationIssue: { IssueId: "cd081857-4f30-4da1-ab5c-a7883f62d99c" },       
    Contact: {
        Email: email
    }
}
window.location.href = "http://vinbrevet.se/success?items="+ item_id + ":" + amount;

jQuery.post("http://ui.admlo.se/Api/Subscriptions/c03a4119-f6a8-4d86-b34f-f16177ec7912", subscription).always(function() {
    function redirectToExternal(item_id, amount) {
    window.location.replace("https://www.systembolaget.se/dryckeslista?items="+item_id+":" + amount);
    }
});

}

和/成功

function redirectToExternal(item_id, amount) {
    window.location.replace("https://www.systembolaget.se/dryckeslista?items="+item_id+":" + amount);
    }

setTimeout("redirectToExternal()", 5000);

现在重定向效果很好,但我无法获得item_id和金额?我应该在/ success中复制整个函数吗?

就像这样:你发布你的购买去" /成功"页面和5秒后,它将使用item_id重定向到外部页面。我做错了哪里?

2 个答案:

答案 0 :(得分:1)

您的成功页面应该在网址中获取产品ID,第二个重定向脚本应该在成功页面上。

window.location.href = "http://dryckesbrevet.se/success";

下面的代码不会像你现在在另一个页面上那样运行!

尝试类似:

window.location.href =“http://dryckesbrevet.se/success?id=”+ product_id;

然后将您的setTimeout()放在成功页面上,获取ID并重定向!

答案 1 :(得分:1)

您无法重定向两次。只要您设置location.href,您的浏览器就会转移到它,任何进一步的操作都不会生效。

您需要将第二个重定向网址传递到第一页,并在第一页后将重定向传递给第一页。

  1. location.href='http://dryckesbrevet.se/success&redirect='+encodeURIComponent("http://ui.admlo.se/Api/Subscriptions/c03a4119-f6a8-4d86-b34f-f16177ec7912")
  2. success页面显示消息
  3. success页面执行setTimeout("redirectToExternal()", 5000);以重定向到&redirect=???中提供的外部页面。