40

我刚刚在 Google Chrome 中打开了一个带有少量基本标签(如 html、body、head 等)的空白 HTML 页面,并尝试在控制台中执行以下命令:

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

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

4

4 回答 4

47

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

document.title = "This is the new page title.";
于 2013-03-07T02:10:06.117 回答
3

document.title如果您想要良好的 SEO,不建议使用设置标题。

您可能需要考虑使用History.js

History.js在所有浏览器中优雅地支持 HTML5 History/State API(pushState、replaceState、onPopState)。包括对数据、标题、replaceState 的持续支持。支持 jQuery、MooTools 和原型。

演示

资源

于 2015-03-27T08:59:37.597 回答
2

当您使用 history.pushState 时,以下代码将更改页面标题

$(document).prop('title','your page title');

它也与 IE 一起使用。

于 2016-08-17T09:07:26.813 回答
0

目前,所有现代浏览器都使用 history.push() 更改标题,但您必须更改 URL。如果您只添加“#locationhash”,它不会更改标题,这是有道理的。

于 2018-11-19T04:15:27.027 回答