Google Chromeでいくつかのベースタグ(html、body、headなど)を含む空白のHTMLページを開き、コンソールで次のコマンドを実行しようとしました。
history.pushState(null, 'my test title', '/test/url');
履歴イベントは正常に機能しますが、ページタイトルは変更されません。大丈夫ですか?毎回手動で変更する必要がありますか?もし必要なら、なぜタイトルのようなpushState()メソッドにそのようなパラメーターがあるのですか?
現在のブラウザはpushStateタイトル属性をサポートしていないようです。 JSで設定することで同じことを簡単に実現できます。
document.title = "This is the new page title.";
良いSEOが必要な場合は、document.title
を使用してタイトルを設定することはお勧めしません。
History.js すべてのブラウザーでHTML5 History/State API(pushState、replaceState、onPopState)を適切にサポートします。データ、タイトル、replaceStateの継続的なサポートを含みます。 jQuery、MooTools、Prototypeをサポートします。
次のコードは、history.pushStateを使用するとページのタイトルを変更します
$(document).prop('title','your page title');
IEでも動作します。
現在、タイトルはhistory.Push()を使用してすべての最新ブラウザーで変更されていますが、URLを変更する必要があります。 「#locationhash」のみを追加した場合、タイトルは変更されません。これは理にかなっています。