2010-09-23 7 views
2

Lorsque vous cliquez sur un lien, une boîte de dialogue jquery vous demande si l'utilisateur souhaite naviguer vers la page suivante ou annuler cette demande de navigation. Le problème concerne les applications Web AJAX ou javascript dans href où il n'y a pas de valeur d'emplacement d'URL href définie.jquery: synchrone se comportant jquery ui dialogue?

Comment puis-je créer une boîte de dialogue jquery ui se comportant de manière synchrone qui demande une entrée utilisateur avant la navigation, et si les entrées utilisateur s'annulent, la navigation ne résultera pas.

Je l'ai fait avec des requêtes AJAX synchrones, mais c'est un problème pour la boîte de dialogue jquery UI.

Répondre

2

Vous ne pouvez pas le faire avec une boîte de dialogue (les navigateurs modernes vous empêchent d'ennuyer l'utilisateur, car les annonceurs trop zélés en abusent). Le plus proche que vous pouvez faire est une invite (style spécifique au navigateur, comme le fait SO) en utilisant l'événement window.onbeforeunload, comme ceci:

window.onbeforeunload = function() { return "Are you sure you want to leave?"; } 

Ce ne sera pas avoir un style jQuery UI, ou vraiment dépendre de jQuery UI ou jQuery de toute façon, mais c'est la solution la plus solide.

Vous pourrait je suppose annuler tous les événements de navigation, stocker les href des ancres, action des formes, etc ... mais ce serait être assez en désordre et toujours pas tout le comportement du navigateur natif pour ces événements.

+0

Je pense que je vais poursuivre une autre option dans les modèles. – KJW