Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.javascript > #3000

Question Oui/Non

From Gloops <gloops@zailes.invalid.org.invalid>
Newsgroups fr.comp.lang.javascript
Subject Question Oui/Non
Date 2016-07-15 14:48 +0200
Organization Serveur de salon
Message-ID <nmam3r$a3k$1@usenet.pasdenom.info> (permalink)

Show all headers | View raw


Bonjour tout le monde,

Voici un document HTML d'appel pour test, et une fenêtre popup, pour 
poser à l'utilisateur une question à laquelle répondre par oui ou par 
non, ce qu'en VB on fait par ret = MsgBox(strQuestion, vbYesNo).

ça fonctionne, sous Firefox sur Windows, je soumets l'ensemble à vos 
commentaires pour optimisation, correction d'erreurs de portabilité ou 
de lisibilité, autres commentaires ...

Notamment je vois deux questions :
1/ Je peux changer le texte d'un élément Label QuestionToAsk par
	this.QuestionToAsk.innerHTML=window.opener.question;
aussi je me serais attendu aussi à pouvoir faire de même avec un bouton, 
or là non je dois impérativement utiliser la syntaxe développée :
	document.getElementById('Yes').value = strYes;
Est-ce que ça signifie quelque chose qui m'a échappé quant à la 
différence entre ces deux contrôles ?
Le fait que dans le premier cas on a affaire à un nœud HTML et dans le 
second à un attribut ?

2/ J'ai écrit une fonction à chaque étape :
  - dans l'appelant une fonction openPopup pour ouvrir la popup
  - dans la popup une fonction à l'ouverture pour traduire les intitulés
  - dans la popup une fonction returnfunction pour la fermeture et pour 
transmettre les valeurs
  - dans l'appelant une fonction followPopup pour exploiter les valeurs 
de retour.

Est-il exclu de faire comme dans VB une fonction qui reçoit un intitulé 
de question, et qui retourne une valeur de réponse, qu'on pourrait 
placer dans l'appelant entre l'instruction à exécuter avant de répondre 
à la question, et celle à exécuter après, classiquement un test ?
Il me semble que ça améliorerait la lisibilité. ça aurait du reste sur 
le VB l'avantage de plus de souplesse pour les intitulés des boutons.

Je vois qu'après réponse la fenêtre appelante affiche son message un peu 
avant que la popup se soit fermée. Serait-il judicieux de mettre une 
temporisation à cet endroit ? Le code continuerait-il de s'exécuter une 
fois la fenêtre popup vraiment fermée ?

A part ça ma popup met pas loin d'une minute à s'afficher sur ma 
machine, mais j'imagine que l'optimisation de cette affaire-là ne relève 
pas de Javascript ?

================= TestYesNo.html ============================

<HTML><HEAD>
<TITLE>Test d'appel d'une pop-up</TITLE>
<SCRIPT language="Javascript">
var question;
var ret;
var culture="fr";
function openPopup(arg){
   question=arg;
   var w = window.open("YesNoQuestion.html", "pop1", "top=150, left=250, 
height=250, width=300");
}
function followPopup(){
   if(ret)alert("oui");
   alert("Fin de traitement openPopup");
}
</SCRIPT>
</HEAD><BODY><form></form>
<input type="button" value="Appel popup" name="call" id="call" 
onClick="openPopup('Qu\'est-ce qu\'on dit à la popup ?')" />
</BODY></HTML>


======================= YesNoQuestion.html =========================

<html><head>
<title>Yes/No question</title>
<script language="javascript">
   var ret;
function opening()
{
    this.QuestionToAsk.innerHTML=window.opener.question;
    var strYes = "";
    var strNo = "";
    switch(window.opener.culture)
    {
       case "fr":
         strYes = "Oui";
         strNo = "Non";
         break;
       default:
         strYes = "Yes";
         strNo = "No";
    }
     document.getElementById('Yes').value = strYes;
     document.getElementById("No").value = strNo;
}
function returnfunction()
{
    window.opener.ret = ret;
    this.close();
    window.opener.followPopup();
}
</script>
</head>
<body onload="opening();">
<form>
   <label id="QuestionToAsk" name="QuestionToAsk">Please allow the 
script to ask you a question.</label><br />
   <input type="button" value="Yes" name="yes" id="Yes" 
onClick="ret=true;returnfunction()" />
   <input type="button" value="No" id="No" 
onClick="ret=false;returnfunction()" />
</form>
</body>
</html>

Back to fr.comp.lang.javascript | Previous | NextNext in thread | Find similar


Thread

Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-15 14:48 +0200
  Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-15 16:47 +0200
  Re: Question Oui/Non SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2016-07-16 15:59 +0200
    Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-17 01:28 +0200
      Re: Question Oui/Non SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2016-07-17 13:10 +0200
        Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-19 00:15 +0200
      Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-19 11:03 +0200
    Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-19 10:56 +0200
      Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-03 20:41 +0200
        Re: Question Oui/Non Guiche <guiche@invalid> - 2016-08-04 07:20 +0200
          Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-04 22:27 +0200
            Re: Question Oui/Non Guiche <guiche@invalid> - 2016-08-05 00:01 +0200
              Re: Question Oui/Non Guiche <guiche@invalid> - 2016-08-08 06:22 +0200
                Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-08 11:59 +0200
                Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-08 12:20 +0200
    Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-19 13:17 +0200
      Re: Question Oui/Non SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2016-07-22 23:56 +0200
        Re: Question Oui/Non Gloops <gloops@zailes.invalid.org.invalid> - 2016-07-23 00:24 +0200

csiph-web