我刚在Google Chrome浏览器中打开了一个空白的HTML页面,并添加了一些基本标签(比如html、body、head等),然后尝试在控制台中执行以下命令:
history.pushState(null, 'my test title', '/test/url');
历史事件正常工作,但页面标题保持不变。这样可以吗?我每次都要手动更改吗?如果我需要更改,那为什么在 pushState() 方法中会有 title 这样的参数呢?
我刚在Google Chrome浏览器中打开了一个空白的HTML页面,并添加了一些基本标签(比如html、body、head等),然后尝试在控制台中执行以下命令:
history.pushState(null, 'my test title', '/test/url');
历史事件正常工作,但页面标题保持不变。这样可以吗?我每次都要手动更改吗?如果我需要更改,那为什么在 pushState() 方法中会有 title 这样的参数呢?
目前的浏览器似乎不支持pushState标题属性。您可以通过在JS中设置来轻松实现同样的效果。
document.title = "This is the new page title.";
document.title
来设置标题。 - Rahul Desaidocument.title
设置标题不推荐,如果您想要良好的SEO效果,建议您考虑使用History.js。
演示 来源History.js在所有浏览器中优雅地支持HTML5 History / State API(pushState,replaceState,onPopState),包括数据、标题、replaceState的持续支持。支持jQuery、MooTools和Prototype。
$(document).prop('title','your page title');
document.title = 'your page title';
可以完美地完成这项任务(并且本质上也是 jQuery 在内部执行的操作)。 - Zander Brown目前,使用history.push()在所有现代浏览器中更改标题,但您必须更改URL。 如果您只添加“#locationhash”,它不会更改标题,这是有道理的。
document.title
。 - John Henckel