在散列更改之前是否存在这样的事情?

时间:2015-08-19 20:29:02

标签: javascript jquery single-page-application

当用户尝试离开单页应用中的某个视图时,我正试图实现一些导航阻力。基本上我想在散列更改之前调用confirm(msg) 的内容。我希望它的行为与onbeforeunload类似。

我发现了这个问题并尝试了建议的答案: How can i execute code before hashchange

对上述问题的一个(未接受的)答案的问题是它正在使用$(window).on('hashchange',...),然后当哈希值发生变化时,当你已经在新视图上时它会确认 并尝试导航回到上一页。这不是一个好的用户体验,除此之外,如果您在该页面上有表单或正在保存,您将丢失导航之前的所有状态信息。

我尝试更改他的答案以使用$(window).before('hashchange',...),但所有这一切都在我脸上爆炸,带有一个奇怪的,看似无关的错误(请参阅下面的错误文字)。在散列实际更改之前,我还没有看到任何关于如何拦截hashchange事件的内容。有人有什么建议吗?

错误消息文字: Uncaught TypeError: Cannot read property 'createDocumentFragment' of undefined

修改 好吧,显然我试图滥用.before所以无视这一部分。我仍然需要在hashchange事件作用于页面

之前拦截它

0 个答案:

没有答案