奇怪的怪癖:pushState和/或hashChange从浏览器选项卡中清除标题

时间:2012-07-19 23:55:18

标签: javascript pushstate history.js hashchange

我有一个ASP.NET MVC 3应用程序,我已构建为单页面应用程序,遵循BigShelf SPA中使用Knockout.js和History.js处理用户交互和导航的示例。一切正常,但我注意到一个奇怪的怪癖,标题显示在浏览器标签中:

  1. 当应用加载时,浏览器标签标题会正确显示<title>标记的内容,即My Single Page App
  2. 当History.js使用pushStatehashChange(取决于浏览器的功能)修改URL时,浏览器的标签标题设置为新修改的URL,即浏览器标签现在显示为http://www.mysinglepageapp.com/modified/url
  3. 再一次,功能上没有问题,但我很奇怪标签标题也被修改了。在我测试的所有浏览器中都会发生这种情况(IE6 +,FF,Chrome,Safari)。

    他们无论如何要改变或控制这种行为?

1 个答案:

答案 0 :(得分:1)

关于Bergi的评论,我仔细研究了History.js和BigShelf SPA示例中提供的包装器。

事实证明,History.js提供了一个方法,该方法接受应显示标题history.pushState(params, title, url)的参数。 SPA中的包装器将URL作为标题传递。我将其更改为我的应用程序的名称,这解决了“问题”。