1

我的智慧到此为止。

我正在运行这个脚本

<script type="text/javascript" charset="utf-8">
    jQuery(window).ready(function(){
        //alert('running');
        var sold = false;

        var leads = [            
            ["one", 120],

            ["two", 0]
        ];

            jQuery.each(leads, function(index, value) {
                var _data = "";
                jQuery.ajax({
                    url: "/wp-content/plugins/cUrl/submit_lead.php?lead=" + value[0],
                    dataType: "json",
                    //contentType: "application/json; charset=utf-8",
                    timeout: value[1] * 1000, //Yes i need to wait 120 seconds for "one"
                    async: false,
                    cache: false
                }).success(function(data) {
                    _data = data;
                    console.log(data.status + " Lead: "+ value[0]);
                    if (data.status == "sold") {
                        sold = true;
                        jQuery.ajax({
                            url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
                            dataType: "json",
                            //contentType: "application/json; charset=utf-8",
                            async: false,
                            cache: false
                        }).success(function() {
                            //Silence is golden.
                        });
                        window.location.href = data.link;
                    }
                }).error(function(jqXHR, textStatus){
                    console.log("ERROR: " + textStatus + " Lead: " + value[0]);
                });

                if (_data.status == "sold") {
                    return false;
                }
            });

            if (!sold) {
                //If we get here, None of the leads were sold.
                jQuery.ajax({
                    url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
                    //contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: false,
                    cache: false
                }).success(function(data) {
                  //Silence is golden.
                });
                window.location.href = '/thank-you.php';
            }        

    });
</script>

该脚本将一些信息提交给 submit_lead.php,该文件将返回一个带有状态、消息和链接的 json 响应。一旦有了这个链接,它就需要使用 ?resetSession 调用相同的脚本,并将用户重定向到收到的链接。

我关闭了同步,因为我需要等到我得到“一个”的响应后再尝试“两个”,因为如果我收到一个链接,那么尝试下一个是没有意义的。

当脚本在 FF 或 Chrome 上运行时,它运行良好。在请求通过时播放一个小动画,一旦返回链接,它就会相应地重定向。

当脚本在 <= IE8 或 Safari 中运行时,页面排序加载一半然后等待(动画加载但不动画。)。一旦 ajax 响应返回,页面就会突然活跃起来,然后你就会被重定向。

我已尝试准备好窗口并准备好文档,但似乎没有任何效果。

任何建议,将不胜感激。

谢谢阅读。

4

1 回答 1

0

就像我在评论中说的那样,重新打开异步。

在 ajax 函数的回调中添加您的重定向或您想要执行的任何操作。这很可能是您被锁定的原因。

于 2013-05-17T17:21:17.963 回答