我正在开发一个 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 导航。
干杯