Liens hypertexts foireux

Fermé
Duke - 16 mars 2009 à 09:42
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 21 avril 2009 à 16:52
Bonjour,

Mon problème est le suivant. J'utilise des liens hypertexts pour naviguer dans mon site. Si la destination du lien se trouve sur la même page que le lien, je ne peux pas revenir au lien de départ en utilisant la commande "précédent" du navigateur. Je vois bien l'adresse changer dans la barre d'URL mais l'affichage reste au même endroit. Si qqn a une idée géniale...

24 réponses

J'ai un autre cas compliqué pour vous :

J'ai une page jsp. Avec un formulaire. Ce formulaire est validé par un input. Lors du clic sur celui-ci, un js se lance pour vérifier les champs. Si des champs sont faux, alors je ne valide pas le formulaire, je reste donc sur cette page (donc pas de rafraichissement).

Mon problème, c'est que ma page est grande, quand je vois le bouton input, je ne vois plus le haut de ma page (les erreurs sont affichées en haut, évidemment). Je voudrais donc retourner en haut de ma page si jamais il y a des erreurs.

j'ai donc placé une encre <a name="top"></a> en haut

et j'ai essayé à plusieurs endroits au niveau de mon input de mettre des href="#top", mais je reste en bas de la page.

Sauriez vous m'aider sur cet épineux problème? Merci beaucoup :)
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
14 avril 2009 à 18:21
Salut,
la solution est plus simple que tu ne penses : les inputs ont une méthode focus() qui, pour une fois, marche sous tous les navigateurs (sans doute parce qu’elle est très ancienne). Il suffit donc que ta fonction de vérification appelle focus() sur le premier input mal rempli, ce qui a pour effet de faire défiler la page jusqu’à ce qu’il soit visible, et de lui mettre la barre clignotante pour saisir du texte, comme si on avait cliqué dessus.

Et si les href ne marchent pas, c’est simplement parce que les inputs ne sont pas des liens…

;)
0
Merci pour ta réponse.

Après de longues heures de recherche, il s'est avéré que seul une fonction onClick="ancre();" situé dans mon input et avec dans la fonction ancre :
window.location.hash="top"; //(j'ai bien sur placé un <a name="top"></a> dans ma jsp )

fonctionnait sous FF. Par contre, cela ne fonctionne pas sous IE. Sauriez-vous pourquoi?
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
21 avril 2009 à 16:52
Hmm, c’est un problème sur lequel je ne me suis jamais penché…
Pour voir j’ai demandé un hash à l’instant, et j’ai obtenu l’ancre avec le dièse. Peut-être qu’IE ne tolère pas qu’on modifie le hash sans mettre de dièse. Ce n’est qu’une piste, et je n’ai pas IE sous la main, donc je te laisse vérifier.

Bonne chance ;)
0