40

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

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

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

4

4 に答える 4

47

現在のブラウザはpushStatetitle属性をサポートしていないようです。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、Prototypeをサポートします。

デモ

ソース

于 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 に答える