2008-10-09 8 views

Répondre

5

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... 
} 
+0

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

+0

les deux plugins liés à avoir des exemples de substitution de la confirmation() – Geoff

+0

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, –

3

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.

0

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).

Questions connexes