web-dev-qa-db-ja.com

ページタイトルはhistory.pushStateによって変更されません

Google Chromeでいくつかのベースタグ(html、body、headなど)を含む空白のHTMLページを開き、コンソールで次のコマンドを実行しようとしました。

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

履歴イベントは正常に機能しますが、ページタイトルは変更されません。大丈夫ですか?毎回手動で変更する必要がありますか?もし必要なら、なぜタイトルのようなpushState()メソッドにそのようなパラメーターがあるのですか?

34
avasin

現在のブラウザはpushStateタイトル属性をサポートしていないようです。 JSで設定することで同じことを簡単に実現できます。

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

良いSEOが必要な場合は、document.titleを使用してタイトルを設定することはお勧めしません。

History.js すべてのブラウザーでHTML5 History/State API(pushState、replaceState、onPopState)を適切にサポートします。データ、タイトル、replaceStateの継続的なサポートを含みます。 jQuery、MooTools、Prototypeをサポートします。

デモ

ソース

5
Rahul Desai

次のコードは、history.pushStateを使用するとページのタイトルを変更します

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

IEでも動作します。

4
S.Akruwala

現在、タイトルはhistory.Push()を使用してすべての最新ブラウザーで変更されていますが、URLを変更する必要があります。 「#locationhash」のみを追加した場合、タイトルは変更されません。これは理にかなっています。

0
Martin Zvarík