2012-06-14 2 views
1

jQuery 모바일 프로젝트에서 작업 중이므로 사용자가 특정 페이지로 돌아 가지 못하도록해야합니다. UI는 분명히 사용자가 돌아 가지 않아야하는 뒤로 버튼을 제공하지 않습니다. 하지만 사용자가 브라우저에서 뒤로 버튼을 클릭 할 때 여전히 문제가 있습니다.뒤로 버튼 jquery mobile을 방지합니다.

나는 사용자가 돌아갈 것인지를 목적지 페이지의 URL을 통해 알 수있는 함수에 pagebeforechange 이벤트를 바인딩함으로써 사용자가 돌아 가지 않도록하려고 시도했다. 이것은 UI를 통해 접근 할 수있는 URL이 2 개뿐이므로 다른 프로젝트의 경우 간단합니다. 다른 URL은 사용자가 뒤로 버튼을 누르는 것을 의미합니다. 사용자가 뒤로 버튼 안타도 정규식이 제대로 작동하고 매번 일치하고 있지만,

$(document).bind('pagebeforechange', function(event, data) { 

    if(typeof data.toPage === "string") { 
    var url = data.toPage; 
    var regex = /.../ 
    var paramsIndex = url.indexOf('?'); // Get rid of possible params 

    if(paramsIndex > 0) { 
     url = url.substr(0, paramsIndex); 
    } 

    if(regex.test(url)) { 
     event.preventDefault(); // Prevent the user from going back.. 
    }  
    } 

}); 

불행하게도이 작동하지 않습니다 (만 :이 유효성을 검사하기 때문에 URL의 성격에 정규식을 사용하고 있습니다 그때). 나는 아이디어가 있는지 궁금해서 jquery mobile의 ajax 탐색을 계속 사용하고 싶습니다. , 이벤트 핸들러에 return false;event.preventDefault(); 교체 :

건배

답변

0

I 모바일 개발 역사 전문가가 아니지만, this question을보고, 어쩌면 당신이 시도해야합니다. 이것은 당신에게 당신의 목표를 달성하는 더 많은 기회를 줄 수 있습니다.

0

return false; (사무엘이 말한 것처럼) event.stopImmediatePropagation();

관련 문제