52 votes

Supprimer le hachage de l'URL

Je suis ajax-ratification de la pagination dans l'une de moi de projets et puisque je veux que les utilisateurs soient en mesure de les signets de la page en cours, je suis en ajoutant le numéro de la page via hachage, dire:

onclick="callPage(2); window.location.hash='p=2'; return false;"

et c'est sur l' hyperlink il fonctionne très bien et tout et tout, sauf, lorsque le numéro de page est de 1, je ne veux pas URL être /products#p=1, j'ai juste envie d'être /products

J'ai essayé ces variations:

  1. window.location.hash='' fonctionne, mais l'url est maintenant comme /products# et je n'ai pas tout à fait le haschisch.
  2. pas à l'aide de la fenêtre.emplacement.de hachage à tous, mais lorsque l'utilisateur revient à la page 1 de la page 3, il est en une seule page, mais l'url est toujours /products#p=3 depuis que je ne suis pas déconner avec la table de hachage.
  3. Recherche Google sur ce qui m'a conduit à plusieurs minutes (environ 15) de silly forums où la question a été posée à droite, mais les réponses ont été suggérant que les sauts de page, parce que le créateur du fil avait une table de hachage dans le href, comme <a href="#"> et il devrait utiliser javascript:void(0) à la place. (ils avaient jamais entendu parler de l'Ajax?)

Donc finalement, j'ai décidé de faire de ce thread, j'ai trouvé plusieurs threads ici, mais toutes les réponses ls très similaire à mon deuxième point.

donc ma grande question reste encore une question: Comment à coup de pied le hash de l'URL et éventuellement en dehors de l'univers? (seulement pour la première page!)

92voto

Homero Barbosa Points 886
history.pushState("", document.title, window.location.pathname);

57voto

wombleton Points 6130

Tu peux le faire:

 var loc = window.location.href,
    index = loc.indexOf('#');

if (index > 0) {
  window.location = loc.substring(0, index);
}
 

... mais cela rafraîchit la page pour vous, ce qui semble un peu grossier après y être arrivé. Sourire et supporter cela semble être la meilleure option.

5voto

Devang Bhagdev Points 83
var urlWithoutHash = document.location.href.replace(location.hash , "" );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X