Backbone.js更改url而不重新加载页面

我有一个拥有用户页面的网站.在该页面上,有几个链接可供您浏览用户的个人资料.我想这样做,当点击其中一个链接时,网址会更改,但包含用户横幅的页面的前三分之一不会重新加载.

我正在使用Backbone.js

我有一种感觉,我处于这样一种情况,即我对我正在处理的问题有如此糟糕的理解,我正在问错误的问题,所以请告诉我,如果看起来是这样的话

解决方法

我的错误是假设在骨干网中有一种特殊的,内置的方式.没有.

只需运行以下代码行

window.history.pushState('object or string','Title','/new-url');

将导致浏览器的URL更改而不重新加载页面.您可以立即在浏览器中打开javascript控制台,并使用此页面进行尝试. This article更详细地解释了它的工作原理(如this SO post所述).

现在我刚刚将以下事件绑定到文档对象(我正在运行单个页面站点):

bindEvents: () ->
    $(document).on('click','a',@pushstateClick)


pushstateClick: (e) ->
    href = e.target.href || $(e.target).parents('a')[0].href
    if MyApp.isOutsideLink(href) == false
        if e.metaKey 
                      #don't do anything if the user is holding down ctrl or cmd; 
                      #let the link open up in a new tab
        else
            e.preventDefault()
            window.history.pushState('','',href);
            Backbone.history.checkUrl()

有关详细信息,请参阅this post.

请注意,您可以将选项pushstate:true传递给您对Backbone.history.start()的调用,但这仅仅是为了直接导航到某个页面(例如example.com/exampleuser/followers)将触发骨干路由而不是简单地导致无处可去.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


js中event的用法
js中能调用python吗
js中split的用法
js怎么设置边框样式
js中截取字符串的方法
js中innerhtml的用法
javascript的成熟分类方式有哪些
js中document是什么意思
js怎样让div中的文字居中
js中怎样定义一个对象
javascript的成熟分类介绍
js中parseint什么意思
js中字符串如何排序
void在js中是什么意思
js中如何定义函数
js中arguments是什么意思
js中什么是同步和异步
js中如何sleep一秒
js中ui函数是什么意思
js中如何遍历数组