禁用jQuery Mobile中的深度链接和哈希标记更改



我看到了许多在jQuery Mobile中实现深度链接的技术和建议,但我的情况恰恰相反。

我有一份多页的文件,完全独立。我希望应用程序的入口点是第一个页面,并禁用文档中其他页面的任何深度链接(编辑:我所说的"深度链接"是指书签,或者只是返回的能力)。我也不希望应用程序中的导航影响哈希标签。换句话说,如果用户在我的应用程序中,并且他们点击了浏览器的后退按钮,我希望他们在进入我的应用之前转到他们正在查看的任何页面,即使他们不在我的第一个页面上。

我所尝试的是在我所有的内部前后导航中,将mobile.changePage方法上的changeHash选项设置为"false"。但结果是,当他们使用浏览器的后退按钮时,他们会后退两页。此外,这种技术并没有像我希望的那样禁用深度链接

我希望其他人可以在不需要我提供代码示例的情况下提供建议,因为我的代码在其他方面相当复杂。

您可以在mobileinit事件上完全禁用changeHash。修改全局默认值应放在jQuery.js之后、jQuery Mobile之前的中。

<script src="jquery.js"></script>
<script>
$(document).on("mobileinit", function(){
$.mobile.changePage.defaults.changeHash = false;
$.mobile.hashListeningEnabled = false;
});
</script>
<script src="jquery.mobile.js"></script>

然后,您需要收听navigate事件上的返回按钮,并使用window.history.back()带领用户浏览历史。

$(window).on("navigate", function (event, data) {
if (data.state.direction == 'back') {
window.history.back();
return false;
}
});

演示

相关内容

  • 没有找到相关文章

最新更新