在 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;
}
});