jQuery Mobile에서로드 할 때 페이지에서 스크립트를 실행하려고합니다. 특정 기준이 충족되지 않으면 다른 페이지로 리디렉션됩니다. 예 : PageA -> PageB -> 페이지로드 로직 수행 -> PageC로 리디렉션 링크를 클릭하십시오. 처음으로 PageB를 탐색하면 모두 잘 작동합니다. 그런 다음 PageA로 돌아가서 PageB에 대한 탐색을 반복하면 리디렉션이 발생하지 않습니다 (pageload 논리가 실행되지 않음). PageA를 새로 고침하고 다시 시도하면 리디렉션이 발생합니다.처음으로 실행 된 jQuery 모바일 pageload 코드
어떤 종류의 캐싱 문제가있는 것 같습니까? 아니면 다른 유형의 페이지로드 이벤트를 사용해야합니까? 페이지가 적중 될 때마다 페이지로드 논리가 실행되도록하려면 어떻게해야합니까?
다음은 코드의 단순화 된 버전입니다. 이 스크립트는 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;
}
});
pagebeforeshow 이벤트가 작동하지 않는 것처럼 보입니다. - $ (document) .bind ('pagebeforeshow', function() {.... 등) – byoung
@byoung 문제의 데모를 설정할 수 있습니까? – Jasper
내가 잘못 생각한 것 같습니다 ... pagebefore 이벤트가 잘 작동합니다. 감사합니다 !! – byoung