history.pushState不会更改页面标题

时间:2012-12-19 15:22:28

标签: html5-history

我刚刚在谷歌浏览器中打开了一个空白的HTML页面,其中包含一些基本标签(如html,body,head等),并尝试在控制台中执行以下命令:

history.pushState(null, 'my test title', '/test/url');

历史事件工作正常,但页面标题保持不变。可以吗?我应该每次都手动更换吗?如果我应该,为什么在pushState()方法中有这样的参数,比如title?

4 个答案:

答案 0 :(得分:34)

目前的浏览器似乎不支持pushState title属性。您可以通过在JS中设置它来轻松实现相同的功能。

document.title = "This is the new page title.";

答案 1 :(得分:5)

以下代码将在您使用history.pushState

时更改页面标题
$(document).prop('title','your page title');

它也在与IE合作。

答案 2 :(得分:4)

如果您想要良好的搜索引擎优化,建议不要使用document.title设置标题。

History.js在所有浏览器中优雅地支持HTML5历史/状态API(pushState,replaceState,onPopState)。包括对数据,标题,replaceState的持续支持。支持jQuery,MooTools和Prototype。

Demo

Source

答案 3 :(得分:0)

当前,标题在所有现代浏览器中都使用history.push()进行了更改,但是您必须更改URL。 如果仅添加“ #locationhash”,则不会更改标题。