首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Backbone更新页面标题,以便在浏览器历史记录中正确显示

使用Backbone更新页面标题,以便在浏览器历史记录中正确显示
EN

Stack Overflow用户
提问于 2013-04-10 07:31:43
回答 1查看 1.6K关注 0票数 0

我正在做一个带有backbone和backbone-layout-manager的构建。当我需要进行视图更改时,我需要将页面更新为新标题。我尝试添加了一个名为setTitle的方便方法,

代码语言:javascript
复制
setTitle: (new_title) ->
    document.title = new_title
    console.log "changed title to: #{new_title}"

在路由改变时,我可以在我的路由器中调用。这很好用,但是,有一个问题。当我检查我的浏览器历史记录时,很明显它显示了与前一个页面相关联的标题。示例(按访问页面的顺序排列为1-3):

代码语言:javascript
复制
1. localhost/#/home/ - "Website"
2. localhost/#/blog/ - "Website - Home"
3. localhost/#/home/ - "Website - Blog"

我看到路由器直到url发生变化并且我的浏览器Chrome将该页面添加到其历史记录之后才会调用该路由。

我的问题是,我如何更新页面的标题,以便在我的浏览器历史记录中主动反映该标题。

更新:这不是Safari的问题,IE有点像是做自己的事情。

EN

回答 1

Stack Overflow用户

发布于 2015-07-29 00:50:03

我能够简单地通过更新每个路由回调中的document.title来实现这一点。

代码语言:javascript
复制
Backbone.Router.extend({
  routes: {
    'posts': 'posts',
    'posts/new': 'newPost'
  },
  posts: function() {
    document.title = 'All Posts';
    // do something
  },
  newPost: function() {
    document.title = 'New Post';
    // do something
  }
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15914385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档