私の知恵ではここで終わります。
このスクリプトを実行しています
<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 を使用して同じスクリプトを呼び出し、ユーザーを受信したリンクにリダイレクトする必要があります。
リンクを受信した場合、次のリンクを試す意味がないため、「2」を試す前に「1」からの応答を得るまで待つ必要があるため、同期をオフにしています。
FF または Chrome でスクリプトを実行すると、正常に実行されます。リクエストの処理中に再生される小さなアニメーションがあり、リンクが返されると、それに応じてリダイレクトされます。
スクリプトが <= IE8 または Safari で実行されると、ページが半分ロードされてから待機します (アニメーションはロードされますが、アニメーション化されません)。ajax 応答が返されると、ページが突然動き出し、リダイレクトされます。
ウィンドウの準備とドキュメントの準備を試みましたが、何も機能していないようです。
任意の提案をいただければ幸いです。
読んでくれてありがとう。