Bonjour à tous,
Il semble que Firefox n'accepte pas de faire le submit d'une form ni sur le onunload en js ni sur le onbeforeunload (cela fonctionne sous IE).
Exemple :
Code Javascript :
var protest = false;
window.onbeforeunload = function selectonunload() {
if (protest == false) {
document.forms['aspnetForm'].submit();
}
}
Est-ce que quelqu'un en sait un peu plus ?
Mon problème regarde l'asp dans la mesure où il me faut enregistrer des données dans une session y compris lorsque l'utilisateur ferme la fenêtre, sans avoir validé ses choix. En fait, j'enregistre en session des données cochées par l'utilisateur en tenant compte des pages de mon site ouvertes en lien _blank (mais sans passage par un button pour faire un submit). Autrement dit, je peux avoir plusieurs pages de mon site affichées dans plusieurs fenêtres (ou onglets) et il s'agit de tenir compte de la possibilité que des choix soient faits dans chacune de ces pages. Seulement, si un onglet (voire la page mère) est fermé, il convient d'enregistrer aussi les choix éventuellement effectués.
Lors d'un postback normal, il n'est pas difficile de récupérer les données choisies en cas de changement de page sans demander à l'utilisateur de cliquer un button "valider" ou "choisir". Au départ, j'utilisais simplement le previouspage lors du postback, pour lire les données précédentes.
A présent, pour tenir compte de la possibilité que plusieurs pages de la même session soient ouvertes en même temps, j'utilise à la fois du js pour passer (si besoin) les informations d'une page à l'autre (par les cases à cocher si l'un des choix possible est présent sur deux pages) et je fais un submit sur le onunload de la page en cas de fermeture ou de changement de page (avec un test spécial pour éviter le double post).
Mais bref, IE supporte très bien le procédé du submit sur le onunload en js, mais pas Firefox. J'ai essayé avec le onbeforeunload, mais sans plus de succès.
Je compte donc abandonner cette solution pour passer par de l'Ajax, chaque fois que l'utilisateur coche une case, (ce qui m'ennuie en l'occurrence), mais j'aimerais savoir avant si quelq'un n'aurait pas une solution plus directe concernant le onunload (ou onbeforeunload) sous Firefox.
Sinon, tant pis, je vais revoir toutes mes pages et utiliser de l'Ajax.
Merci d'avance,
GGtry