我正在开发一个jQuery移动项目并且需要阻止用户返回某些页面,UI显然没有提供用户不应该返回的后退按钮,但我仍然有一个用户单击浏览器上的后退按钮时出现问题。
我试图通过将pagebeforechange事件绑定到一个函数来阻止用户返回,该函数通过查看目标页面的URL可以知道用户是否返回。这在我的项目中很简单,因为只有2个URL可以通过UI访问,因此任何其他URL都意味着用户点击后退按钮。我正在使用正则表达式,因为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..
}
}
});
不幸的是,这不起作用,即使正则表达式正常工作并且每次用户点击后退按钮时匹配(并且只有那时)。我想知道你是否有任何想法,我宁愿继续使用jquery mobile的ajax导航。
干杯
答案 0 :(得分:0)
我不是移动开发专家,但看到this question,也许您应该尝试这样做:在您的事件处理程序中,将event.preventDefault();
替换为return false;
。这只能让您有更多机会实现目标。
答案 1 :(得分:0)
return false;
或添加event.stopImmediatePropagation();