jQuery Mobileで、読み込み時にページでスクリプトを実行しようとしています。特定の基準が満たされない場合は、別のページにリダイレクトします。たとえば、PageA->PageBへのリンクをクリック->ページロードロジックを実行->PageCにリダイレクトします。初めてPageBに移動したときは、すべてうまく機能します。その後、PageAに戻ってPageBへのナビゲーションを繰り返すと、リダイレクトは発生しません(ページロードロジックは実行されません)。PageAをリロードして再試行すると、リダイレクトが発生します。
ある種のキャッシュの問題のようですか?または、別のタイプのページ読み込みイベントを使用する必要がありますか?ページがヒットするたびにページロードロジックが実行されるようにするにはどうすればよいですか?
これがコードの簡略化されたバージョンです。スクリプトは、jqmおよびjqmモバイルスクリプトの後にヘッドで呼び出されます。
$(document).bind('pageload', function (evt,data) {
// I need the url to see if the page needs the logic executed on it
var page = $.mobile.path.parseUrl(""+ data.url +"");
if (page == "PageB"){
logicRequired = "yes";
}
switch (logicRequired)
{
//==========================
case 'yes':
// AJAX call to determine if redirect is needed
$.ajax({
url: "scripts/file.php",
async: false,
cache: false,
success: function (data){
if(data.status == 'success') {
// do some stuff
} else if(data.status == 'error') {
//redirect to another page
window.location.replace('redirectPage.html');
}
},
error: function(data){
//alert("There was an error in the ajax call");
},
});
break;
}
});