Bonjour à tous,
J'ai une chtite question que je sais pas trop comment y répondre. Soit un formulaire HTML de méthode POST contenant une iframe "cachée" (par cachée, j'entends que ses dimensions sont 0x0 et sans bordure) pointant par défaut sur une page blank.html contenant simplement le code html <html></html>. Soit un bouton <input type="button"> de ce formulaire déclanchant une fonction JavaScript qui poste le formulaire dans l'iframe sur une certaine URL. Cette URL fait bien entendu un traitement du formulaire mais finalement n'affiche rien de spécial vu que l'iframe est cachée.
L'iframe étant cachée, l'utilisateur ne sait pas qu'une nouvelle page y a été chargée. Comme ça, là, sans rien faire, l'utilisateur peut donc cliquer sur le bouton back (précédent) si ça lui fait plaisir (je n'ai rien contre) mais étrangement, il ne revient pas sur la page précédente (i.e. celle qui l'a amené sur le formulaire) mais reste sur le formulaire. Et une fois qu'il a cliqué sur précédent, il peut cliquer sur "Suivant" et là, ça lui demande s'il veut reposter le formulaire. Vous vous rendez bien compte que c'est la panique : l'utilisateur ne comprends rien à ce qui lui arrive : il n'arrive pas a quitté la page et on lui demande s'il veut resoumettre un formulaire qu'il croit ne jamais avoir posté.
Bref, la question est donc la suivante : une fois le formulaire posté dans l'iframe cachée, comment faire en sorte que cette action ne figure pas dans l'historique du navigateur ? Comment faire en sorte que le bouton précédent le ramène bien sur la page précédente et que le bouton Suivant soit désactivé (cas idéal, cas dégradé accepté : que si le bouton Suivant n'est pas désactivé, qu'on ne demande pas à l'utilisateur s'il veut bien resoumettre le formulaire).
Merci pour votre aide. Amicalement,
_Mac_
Partager