web-dev-qa-db-fra.com

Le titre de la page n'est pas modifié par history.pushState

Je viens d'ouvrir une page HTML vierge avec quelques balises de base (telles que html, body, head, etc.) dans Google Chrome et j'ai essayé d'exécuter la commande suivante dans la console:

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

Les événements d’histoire fonctionnent bien, mais le titre de la page reste inchangé. Est-ce que c'est bon? Devrais-je le changer manuellement à chaque fois? Si je devais, pourquoi il y a un tel paramètre dans la méthode pushState () comme title?

30
avasin

Il semble que les navigateurs actuels ne prennent pas en charge l'attribut de titre pushState. Vous pouvez facilement réaliser la même chose en le configurant dans JS.

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

Définir le titre à l'aide de document.title n'est pas recommandé si vous voulez un bon référencement.

History.js prend en charge avec élégance les API Historique/État HTML5 (pushState, replaceState, onPopState) dans tous les navigateurs. Y compris le soutien continu pour les données, les titres, replaceState. Prend en charge jQuery, MooTools et Prototype.

Démo

La source

5
Rahul Desai

Le code suivant changera le titre de la page lorsque vous utiliserez history.pushState

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

Il travaille également avec IE.

5
S.Akruwala

Actuellement, le titre est modifié dans tous les navigateurs modernes utilisant history.Push (), mais vous devez modifier l'URL . Si vous ajoutez uniquement "#locationhash", le titre ne sera pas modifié, ce qui est logique.

0
Martin Zvarík