Page title is not changed by history.pushState

2020-05-25 06:15发布

I've just opened a blank HTML page with some little amount of base tags (like html, body, head, etc) in Google Chrome, and tried to execute the following command in console:

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

History events work fine, but the page title stays unchanged. Is it OK? Should I change it manually every time? If I should, why there is such parameter in pushState() method like title?

4条回答
ゆ 、 Hurt°
2楼-- · 2020-05-25 06:22

Setting the title using document.title is not recommended if you want good SEO.

History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype.

Demo

Source

查看更多
贼婆χ
3楼-- · 2020-05-25 06:29

It seems current browsers don't support pushState title attribute. You can easily achieve the same thing by setting it in JS.

document.title = "This is the new page title.";
查看更多
家丑人穷心不美
4楼-- · 2020-05-25 06:31

Currently, the title is being changed in all modern browsers using history.push(), but you have to change the URL. If you only add "#locationhash" it won't change the title, which makes sense.

查看更多
Deceive 欺骗
5楼-- · 2020-05-25 06:40

Following code will change the page title when you use history.pushState

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

It is working with IE also.

查看更多
登录 后发表回答