Je veux écrire quelque chose qui fonctionne exactement comme confirm() en javascript, mais je veux l'écrire moi-même afin que je puisse habiller la boîte de dialogue. En ayant du mal à réfléchir à la manière dont je forcerais le thread javascript à attendre que l'utilisateur réponde, puis retourner vrai ou faux.Comment écrire ma propre boîte de dialogue de confirmation en javascript?
Répondre
Si j'étais vous, je voudrais regarder l'une des bibliothèques javascript populaires. La plupart contiennent une sorte de dialogue modal. Un couple trouvé pour JQuery est jqModal et SimpleModal.
Lorsque vous construisez la boîte de dialogue modale, vous devrez attacher des événements aux boutons, de sorte que vous feriez quelque chose comme:
function askUserYesOrNo() {
var myDialog = $('<div class="mydialog"><p>Yes or No?</p><input type="button" id="yes" value="Yes"/><input type="button" id="no" value="No"/></div>');
$("#yes").click(handleYes);
$("#no").click(handleNo);
myDialog.modal(); //This would have to be replaced by whatever syntax the modal framework uses
}
function handleYes() {
//handle yes...
}
function handleNo() {
//handle no...
}
Vous voulez vraiment utiliser un cadre pour cela, en raison du nombre de Problèmes de navigateur croisés étranges que vous rencontrerez en essayant de le construire vous-même.
J'ai eu de bons résultats en utilisant jqModal, un plugin pour le framework jQuery qui vous permet de définir des boîtes de dialogue modales, mais ce n'est en aucun cas la seule option; essayez Googling jquery modal ou yui modal pour certaines alternatives.
Vous pourriez utiliser la fenêtre. showModalDialog (mozilla), mais il s'agit d'une fonction non standard introduite par Internet Explorer. Maintenant, il est également pris en charge dans Firefox 3 et Safari (je ne sais pas quelle version, mais au moins 3.1 et plus élevé, mais pas l'iPhone).
A lightbox modal YUI bare-bones (example):
Pour Mootools, il y a moo.rd's Custom.Confirm et Windoo.Confirm pour votre référence.
- 1. Définir le titre de la boîte de dialogue de confirmation
- 2. boîte de dialogue de confirmation (alerte) après soumettre le formulaire
- 3. Boîte de dialogue de confirmation à l'exécution dans asp.net
- 4. Boîte de confirmation Jquery
- 5. MSHTML - Clic automatique pour la boîte de dialogue de confirmation JavaScript
- 6. Boîte de dialogue Message/Confirmer
- 7. Comment afficher la boîte de dialogue de confirmation de suppression dans asp.net
- 8. IExplorer: affiche ma propre boîte de dialogue au lieu de la boîte de dialogue IExplorer par défaut lorsque nous essayons de charger un fichier à partir du réseau
- 9. Comment puis-je implémenter une boîte de dialogue de confirmation pour une action critique?
- 10. Actions de confirmation Javascript
- 11. Comment concevoir un CSS pour une boîte de dialogue de confirmation flottante centrée?
- 12. Affichage d'une boîte de dialogue de confirmation Javascript dans Rails à l'aide de la logique de validation côté serveur
- 13. Mozilla: Je veux faire apparaître ma propre boîte de dialogue sur le bouton de sauvegarde de fichier Télécharger Dilaog
- 14. Éviter plusieurs (40) boîtes de dialogue de confirmation jquery - réutilisation?
- 15. Comment proposer une boîte de dialogue 'confirmation' qui déclenche ensuite le code côté serveur
- 16. JavaScript - boîte de confirmation. | Oui? > supprimer des données de MySQL/No - ne rien faire
- 17. Comment écrire mon propre wrapper en C#?
- 18. Flash: Boîte de dialogue Téléchargement
- 19. Boîte de dialogue modale
- 20. Watin - Gestion des boîtes de dialogue de confirmation avec ConfirmDialogHandler
- 21. Comment concevoir un CSS pour une boîte de dialogue de confirmation flottante centrée sur la partie visible d'une page?
- 22. Comment appliquer un style à une fenêtre contextuelle de confirmation
- 23. Comment écrire mon propre AuthorizeTag?
- 24. Ajout d'une boîte de dialogue Javascript Confirmer à LinkButton/Le formulaire génère l'objet Erreur attendue
- 25. boîte de dialogue de couleur
- 26. Boîte de dialogue intégrée Excel
- 27. Boîte de dialogue dans SCSF
- 28. enregistrer en tant que boîte de dialogue dans asp.net
- 29. Boîte de dialogue C# catch
- 30. Comment créer une boîte de dialogue en utilisant jquery
Il en est ainsi les plats à emporter ici je ne peux plus écrire du code comme « if (confirm (» text ")) {// handleYes} else {//} // Non gérer d'autres choses après ça? Je voudrais être capable de l'utiliser de la même façon que vous utilisez pour confirmer. – Bialecki
les deux plugins liés à avoir des exemples de substitution de la confirmation() – Geoff
AFAIK, javascript threads sont exécutés en synchronisme avec le thread d'interface utilisateur. Si vous avez déjà rencontré un long script exécuté cela a gelé votre navigateur, vous l'avez vu, ce n'est peut-être pas le cas dans Chrome, par exemple, mais dans la plupart des navigateurs utilisés, –