9
votes

Comment surveiller les modifications de l'URL (identifiant de fragments - la partie d'ancrage d'une URL)

Je fais un site Web qui tendent à gérer toute la demande d'une page (Ajax). J'ai donc pensé que je pouvais piéger tous les utilisateurs sur un lien et vérifier si c'est sur mon site Web, je fais quelque chose sur JavaScript comme une demande Ajax par exemple, autre Il ouvrirait le lien comme d'habitude!

faire une montre sur fenêtre.Location n'a pas fonctionné! Et de plus, je ne sais pas s'il y a de toute façon obtenir la partie URL qui est après le signe #. Remarque: Gmail et Facebook fait-il que je suppose!, Ils utilisent quelque chose comme ceci:
http://mail.google.com/mail/ #inbox < BR> http://www.facebook.com/home.php # / Boîte de réception /? Réf = MB

Veuillez prendre en compte: que j'aime utiliser jQuery dans mes projets, de sorte qu'une solution utilisant son utilisation est préférée.

Des idées?


4 commentaires

@Omar: La partie de l'URL après # est le «hachage». Édité votre titre et tag. :)


@ o.k.w: la partie de l'URL après # est appelée «fragment», pas hachage.


@ O.K.W Merci, je ne suis pas un anglais "natif", alors n'hésitez pas à le corriger pour être plus évident.


@Drjokepu: Vous avez raison! Hachage est plus d'une notation JavaScript. fragment est le terme correct: Outils.ietf.org/html /RFC3986#Section-3.5


5 Réponses :



4
votes

La partie forte> fragment forte> de l'URL est utilisée pour activer l'historique de navigation (boutons de retour et d'avance) sur des sites Web compatibles Ajax. Si vous souhaitez "pièger" clique sur des liens, car vous utilisez de toute façon JQuery, vous pouvez simplement le faire:

$('a').click(function()
{
   var item = $(this);
   var url = item.attr('href');
   // your logic here
});


0 commentaires

4
votes

Voici une autre bonne lecture: Restauration de la navigation de navigateur conventionnelle sur les applications Ajax

extrait de l'article:

De nombreux développeurs ont adopté Ajax en tant que façon de développer des applications Web riches qui sont presque aussi interactifs et sensible en tant qu'applications de bureau. Ajax travaille en divisant l'interface utilisateur Web en différents segments. Un utilisateur peut effectuer une opération sur un segment puis Commencez à travailler sur d'autres segments sans attendre le premier opération à finir.

Mais Ajax a un inconvénient majeur; ce casse le comportement du navigateur standard, tel comme arrière, avant et bookmarking Support. Plutôt que de forcer les utilisateurs à s'adapter aux lacunes d'Ajax, Les développeurs devraient faire leur ajax Les applications sont conformes à la Interaction Web traditionnelle style, .......


1 commentaires

Bonne information, j'aime toujours considérer sérieusement la convivialité dans mes sites Web.



3
votes

Voir le lien de @pekka à Comment pouvez-vous vérifier un #hash dans une URL à l'aide de JavaScript? pour regarder le hachage. Il suffit de mettre cette fonction dans le rappel de window.setInterval ()


4 commentaires

Remarque: Window.setInterval () pourrait tuer la performance! Je préfère utiliser le gestionnaire d'événements (spécifiquement jQuery's Way)


Si vous regardez le jQuery HashChange - c'est juste un script seinterval sur tout, mais IE8. Bien que c'est un joli script.


Oh!, Je pense que je pourrais le jeter pour ça.


... Il n'y a pas d'événement «Hashchange» sur quoi que ce soit, mais c'est-à-dire ie8 - d'où le seinterval. seinterval n'est pas mauvais tant que la minuterie n'est pas horriblement faible - elle fonctionne à la fin de la boucle d'événement, de sorte que tous les autres événements arrivent en premier.



4
votes

Il y a un HashChange Event expédié sur la fenêtre pour les navigateurs les plus récents.


2 commentaires

Je cherche une solution compatible en arrière (comme IE6 :(). Donc, je préférerais surveiller les clics d'ancrage.


Hmmm, plugins.jquery.com/project/hashschange fait le truc :). merci pour le mot clé hashchange