当您导航回来时,jQuery Mobile如何为页面设置动画?

时间:2012-04-04 13:54:28

标签: jquery-mobile

当您使用jQuery Mobile点击网站上的浏览器后退按钮时,不会立即离开页面,而是激活上一页。这是如何实现的?我认为他们无法拦截浏览器的后退按钮(我可以看到为什么浏览器制造商不想允许这样做)。谢谢

1 个答案:

答案 0 :(得分:0)

使用哈希URL方案时(未启用pushState插件):

  

独立于点击发生的哈希更改,例如用户时   单击后退按钮,通过 hashchange事件处理,   使用Ben Alman的hashchange绑定到window对象   特殊事件插件(包含在jQuery Mobile中)。当哈希改变时   发生(以及第一页加载时)hashchange事件   handler会将location.hash发送到$ .mobile.changePage()   函数,它反过来加载或显示引用的页面。

来源:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-navmodel.html

启用pushState插件时,同样可以,但hash会转换为正常/可读的网址:

  

有一项可选功能可转换较长的基于散列的网址   在上一节中提到了完整的文档路径   更清洁,并使URL结构中的Ajax跟踪透明。   这是基于散列的URL系统之上的增强功能   用于Ajax链接。请注意,尽管名称,这个功能在技术上   使用history.replaceState(不是。)转换基于哈希的URL   当前版本中的history.pushState)因为这个工作原理更多   可靠地跨目标平台。对于不支持的浏览器   history.replaceState,或者如果禁用此功能,则基于散列的URL   将改为使用。

来源:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-navmodel.html

此处还有hashchange事件的MDN文档:https://developer.mozilla.org/en/DOM/window.onhashchange