Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


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

Question Oui/Non

Started byGloops <gloops@zailes.invalid.org.invalid>
First post2016-07-15 14:48 +0200
Last post2016-07-23 00:24 +0200
Articles 18 — 3 participants

Back to article view | Back to fr.comp.lang.javascript


Contents

  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

#3000 — Question Oui/Non

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-15 14:48 +0200
SubjectQuestion Oui/Non
Message-ID<nmam3r$a3k$1@usenet.pasdenom.info>
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>

[toc] | [next] | [standalone]


#3001

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-15 16:47 +0200
Message-ID<nmat2j$ec3$1@usenet.pasdenom.info>
In reply to#3000
Le 15/07/2016 à 14:48, Gloops a écrit :
> 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 ?


Depuis la popup j'ai essayé window.opener.setTimeout("followPopup()", 
2000), window.opener.window.setTimeout("followPopup()", 2000), ça 
n'appelle rien du tout.

Alors dans l'appelant j'ai mis ça et c'est OK :

function followPopup(){
   setTimeout('followPopup2()', 1000);
}
function followPopup2(){
   if(ret)alert("oui");
   alert("Fin de traitement openPopup");
}

Bien sûr, ça ne réduit pas le nombre de fonctions.


[toc] | [prev] | [next] | [standalone]


#3002

FromSAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid>
Date2016-07-16 15:59 +0200
Message-ID<578a3dae$0$26280$426a74cc@news.free.fr>
In reply to#3000
Le 15/07/16 à 14:48, Gloops a écrit :
 > Bonjour tout le monde,

¿Qué tal?

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

<script>
function MsgBox(strQuestion,oui,non) {
alert(confirm(strQuestion+'\n\nOui = OK, Non = Annuler')?oui:non);
}
</script>
<button onclick="MsgBox('Ça va bien ?','Bon! Tant mieux.','J\'en suis 
désolé')">Hello</button>


 > ç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;

Ha ?
et
	document.form[0].Yes.value
ça ne fonctionne pas ?

En tous cas, chez moi :
       this.Yes.value = strYes;
       this.No.value = strNo;
fonctionne !
(même si je suis surpris que "this.unNom_d_Id" signifie qque chose au JS )

Tu as dû tester sur du code qui avait une coquille ?!

 > Est-ce que ça signifie que quelque chose m'a échappé quant à la
 > différence entre ces deux contrôles ?

Tes éléments input ne sont pas dans le FORM ?
Faute de frappe ? (typo)

 > Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
 > second à un attribut ?

??? ce sont des IDs pour chaque, non ?
Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?

 > 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 ?

Pas trop compris la question ... mais si la question est de tout faire 
depuis l'opener ce doit être possible. Cependant ça ne peut fonctionner 
que SI les 2 fenêtres sont déjà et sont encore ouvertes.
Car là, en l'état, il faut bien attendre que le popup s'ouvre avant 
qu'il puisse renvoyer une réponse. (et que donc c'est mieux que ce soit 
lui qui lance la fonction-de-réponse de l'opener).

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

Si tu arrives à franciser le texte du popup à partir de l'opener, je ne 
vois pas pourquoi tu n'arriverais pas à aussi franciser les boutons ...
(note que la langue se traite en HTML "normal" avec un soupçon d'aide de 
la part du serveur, pas besoin de JS pour ça)

 > Je vois qu'après réponse la fenêtre appelante affiche son message un peu
 > avant que la popup se soit fermée.

Mes outils sont trop rapides pour que je puisse voir ça ...
Mais si l'bazarrh fonctionne c'est bien ce qui doit se passer.

 > 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 ?

???
Normalement ... non.
Une fois la fenêtre du popup fermée plus aucun de ses objets 
(window.opener par exemple) n'existe !
Même IE avec ses fuites de mémoire respecte ça.

 > A part ça ma popup met pas loin d'une minute à s'afficher sur ma
 > machine,

Quelle machine ?
Quel OS ?
Comment sont réglées les préférences du navigateur ? (accepte ou non les 
popups)
Combien d'onglets y sont déjà ouverts et que renferment-ils ?
Avec le code simplifié donné en exemple ? (corrigé ? doctype et charset)
Le navigateur a été fermé/quitté puis relancé ?
Idem pour Windows ?

 > mais j'imagine que l'optimisation de cette affaire-là ne relève
 > pas de Javascript ?

Ne pas tester sur un engin qui sort (tente de sortir) de veille !
Suspendre l'openGL ?

Préférer tout faire dans la fenêtre déjà affichée (et ne pas enquiquiner 
les gensses avec des popups).



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

<!DOCTYPE html><HTML><HEAD>
<meta charset="utf-8" />
<TITLE>Test d'appel d'une pop-up</TITLE>
<SCRIPT>
var question;
var ret;
var culture="fr";
var pop;
function openPopup(arg){
     question=arg;
     pop = window.open("YesNoQuestion.html", "pop1", "top=150, left=250, 
height=250, width=300");
}
function followPopup(){
//  if(ret)alert("oui");
// mise à jour de rep indépendamment de l'envoi par le popup
// if(pop) ret = pop.rep;

     alert(ret?"oui":"non");
     alert("Fin de traitement openPopup");
}
</SCRIPT>
</HEAD>
<BODY>
<form>
<input type="button" value="Appel popup" name="call" id="call" 
onClick="openPopup('Qu\'est-ce qu\'on dit à la popup ?')" />
</form>
</BODY></HTML>

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

<!DOCTYPE html><html><head>
<meta charset="utf-8" />
<title>Yes/No question</title>
<script>
     var ret;
function opening()
{
      var Q = this.QuestionToAsk;
      		
      if(Q==false) { alert('erreur'); return }
      alert('type du node : '+(typeof Q) +'\n'+Q.innerHTML);

      Q.innerHTML=window.opener.question;
      var strYes = "";
      var strNo = "";
      switch(window.opener.culture)
      {
         case "fr":
           strYes = "Oui";
           strNo = "Non";
           break;
         default:
           strYes = "Yes";
           strNo = "No";
      }
       this.Yes.value = strYes;
       this.No.value = strNo;
}
function returnfunction()
{
      window.opener.ret = ret;
      self.close();
      window.opener.followPopup();
}
</script>
</head>
<body onload="opening();">
<form onsubmit="return false;">
     <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" name="no" id="No" 
onClick="ret=false;returnfunction()" />
</form>
</body>
</html>



Voir (date de 2005/2007 ou même 2001) :
Des popups qui se causent :
http://stephane.moriaux.pagesperso-orange.fr/truc/popup_oui_non/
http://stephane.moriaux.pagesperso-orange.fr/truc/popup_suivi/
utilitaire de création de popup :
http://stephane.moriaux.pagesperso-orange.fr/internet/web_html/java/fenetr/les_popups.htm

Cordialement,
-- 
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8

[toc] | [prev] | [next] | [standalone]


#3003

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-17 01:28 +0200
Message-ID<nmefva$ci2$1@usenet.pasdenom.info>
In reply to#3002
Le 16/07/2016 à 15:59, SAM a écrit :
> Le 15/07/16 à 14:48, Gloops a écrit :
>> Bonjour tout le monde,
>
> ¿Qué tal?

Désolé d'être un peu juste pour répondre en Espagnol :)

> Ha ?
> et
>     document.form[0].Yes.value
> ça ne fonctionne pas ?

Ah, j'avoue que je n'ai pas pensé à mettre ça.

>
> En tous cas, chez moi :
>       this.Yes.value = strYes;
>       this.No.value = strNo;
> fonctionne !

Je jurerais avoir essayé quelque chose d'approchant. Je me serais gouré 
sur la casse ?

> (même si je suis surpris que "this.unNom_d_Id" signifie qque chose au JS )

En jQuery on fait même encore plus fort si je ne m'abuse :)


>
> Tu as dû tester sur du code qui avait une coquille ?!
>
>> Est-ce que ça signifie que quelque chose m'a échappé quant à la
>> différence entre ces deux contrôles ?
>
> Tes éléments input ne sont pas dans le FORM ?
> Faute de frappe ? (typo)

Peu-être as-tu remarqué ceci, qui est peut-être une forme de réponse par 
anticipation ?

</HEAD><BODY><form></form>
<input

Ah, ce qui a pu arriver est que comme je n'ai pas mis Form dans la 
syntaxe d'appel, du coup ça ne retourne un résultat que si le contrôle 
est en dehors du Form.

Je referai quelques essais dans la journée, pour le moment j'ai un 
nettoyage qui prend des ressources ...

>
>> Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
>> second à un attribut ?
>
> ??? ce sont des IDs pour chaque, non ?
> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?

Hum, voyons voir ...

   <label id="QuestionToAsk" name="QuestionToAsk">Please allow the 
script to ask you a question.</label><br />

Pour moi, l'id, c'est QuestionToAsk, alors que "Please allow the script 
to ask you a question", ça serait plutôt l'innerHTML, et dans le DOM 
l'innerHTML est onsidéré comme un nœud. D'ailleurs, il faudrait que je 
révise la syntaxe qui me fait dire ça, j'ai joué avec ça une fois il y a 
un an.

Au contraire :

   <input type="button" value="Yes" name="yes" id="Yes" 
onClick="ret=true;returnfunction()" />

Là, le texte à afficher est stocké dans l'attribut value, qu'il sera 
plus difficile de considérer comme un nœud à lui tout seul.


Bon alors après il faudra que je remette les mains dans le cambouis 
avant d'en parler plus.

>
>> 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 ?
>
> Pas trop compris la question ... mais si la question est de tout faire
> depuis l'opener ce doit être possible. Cependant ça ne peut fonctionner
> que SI les 2 fenêtres sont déjà et sont encore ouvertes.
> Car là, en l'état, il faut bien attendre que le popup s'ouvre avant
> qu'il puisse renvoyer une réponse. (et que donc c'est mieux que ce soit
> lui qui lance la fonction-de-réponse de l'opener).

En VB on peut écrire quelque chose comme :
DIM strExemple As String
strExemple = "Un texte"
If MsgBox("Voulez-vous afficher l'exemple ?", vbYesNo) = vbYes Then
	MsgBox strExemple
End If

alors qu'en Javascript pour faire la même chose il faut utiliser deux 
scripts et écrire quatre fonctions pour faire les liens entre eux.

Est-ce que c'est parce que je ne sais pas faire, ou c'est inévitable ?

Pour ce qui est d'écrire le script de question Oui/Non dans le même 
fichier, je ne me représente pas trop, avec un système d'inclusion ça 
doit présenter son intérêt. Tu ferais ça comment ?
Enfin il y a alert, mais là si on a des boutons c'est avec les intitulés 
standard (true / false, c'est bien ça ?)
Si je l'ai fait dans un autre fichier c'est pour pouvoir faire un 
affichage -avec d'autres intitulés de boutons que ceux de alert.

Sinon afficher une boîte de dialogue et ensuite modifier les intitulés 
de ses boutons avec un autre programme, j'y ai joué il y a un moment, 
mais ... pas en Javascript.

>
>> 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.
>
> Si tu arrives à franciser le texte du popup à partir de l'opener, je ne
> vois pas pourquoi tu n'arriverais pas à aussi franciser les boutons ...

Je l'ai fait, note bien. Tu n'as pas vu ?
La variable culture dans l'appelant est lue depuis la fonction opening, 
et si elle vaut "fr" on met "Oui" et "Non", sinon "Yes" et "No".

Tu me diras qu'un switch avec juste une valeur on peut critiquer, mais 
comme ça c'est plus facile d'ajouter juste avant le default :

    case "de":
      strYes = "Ja";
      strNo = "Nein";


> (note que la langue se traite en HTML "normal" avec un soupçon d'aide de
> la part du serveur, pas besoin de JS pour ça)

Exact. En intégrant ça à ASP.Net c'est sûrement ce que je ferai.

>
>> Je vois qu'après réponse la fenêtre appelante affiche son message un peu
>> avant que la popup se soit fermée.
>
> Mes outils sont trop rapides pour que je puisse voir ça ...
> Mais si l'bazarrh fonctionne c'est bien ce qui doit se passer.
>
>> 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 ?
>
> ???
> Normalement ... non.
> Une fois la fenêtre du popup fermée plus aucun de ses objets
> (window.opener par exemple) n'existe !
> Même IE avec ses fuites de mémoire respecte ça.
>
>> A part ça ma popup met pas loin d'une minute à s'afficher sur ma
>> machine,
>
> Quelle machine ?
> Quel OS ?
> Comment sont réglées les préférences du navigateur ? (accepte ou non les
> popups)
> Combien d'onglets y sont déjà ouverts et que renferment-ils ?
> Avec le code simplifié donné en exemple ? (corrigé ? doctype et charset)
> Le navigateur a été fermé/quitté puis relancé ?
> Idem pour Windows ?


Hum ... J'ai fait plusieurs sessions, la dernière dont je me rappelle 
avait sept onglets sous Firefox 47.0.1

Mais pour tout dire mon Windows XP a besoin d'un bon nettoyage vite 
fait, et pas qu'un peu, c'est clair que ça ne peut pas accélérer 
l'exécution.



>
>> mais j'imagine que l'optimisation de cette affaire-là ne relève
>> pas de Javascript ?
>
> Ne pas tester sur un engin qui sort (tente de sortir) de veille !

Ah la sortie de veille j'ai géré il n'y a pas longtemps, c'était sur une 
autre machine, pour envoyer une combinaison de touches. Mais là-dedans 
il n'y a pas de boîtes de dialogue.

> Suspendre l'openGL ?

Tiens, ça c'est probablement un truc qu'il faut que je creuse.
Quand je joue au solitaire, les cartes bougent très bien, et puis à un 
moment tout se fige, il faut que j'attende dix secondes, c'est parce que 
le programme veut m'afficher un message, de type MsgBox (enfin ... 
alert), alors ça lui prend à peu près dix secondes.



>
> Préférer tout faire dans la fenêtre déjà affichée (et ne pas enquiquiner
> les gensses avec des popups).


Ah j'ai pratiqué aussi, ça, l'année dernière, une division sur la page 
pour afficher une question, du coup il faut la faire suffisamment grande 
pour qu'on ne voie que ça, histoire que ça soit clair. Mais en 
définitive, pour ce qui est de ne pas enquiquiner les gensses, je me 
demande si ce n'est pas un peu raté.

Il est vrai qu'au moins, on évite le risque de la question qui se pose 
derrière la fenêtre principale, un peu comme l'agent de police qui irait 
se mettre derrière le coffre du côté droit, en se mettant à genoux, pour 
parler au conducteur pour lui demander ses papiers. En chuchotant, bien sûr.

> Voir (date de 2005/2007 ou même 2001) :
> Des popups qui se causent :
> http://stephane.moriaux.pagesperso-orange.fr/truc/popup_oui_non/
> http://stephane.moriaux.pagesperso-orange.fr/truc/popup_suivi/
> utilitaire de création de popup :
> http://stephane.moriaux.pagesperso-orange.fr/internet/web_html/java/fenetr/les_popups.htm

J'irai voir ça.

>
>
> Cordialement,

De même.

[toc] | [prev] | [next] | [standalone]


#3004

FromSAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid>
Date2016-07-17 13:10 +0200
Message-ID<578b67b2$0$7122$426a74cc@news.free.fr>
In reply to#3003
Le 17/07/16 à 01:28, Gloops a écrit :
>
> En jQuery on fait même encore plus fort si je ne m'abuse :)

Je sais pas c'que c'est ce jQuery :-(

> Peu-être as-tu remarqué ceci,
>
> </HEAD><BODY><form></form>
> <input

oui, c'est bien pourquoi je l'évoque.

> Ah, ce qui a pu arriver est que comme je n'ai pas mis Form dans la
> syntaxe d'appel, du coup ça ne retourne un résultat que si le contrôle
> est en dehors du Form.

Je ne crois pas .... as-tu testé avec mon code (corrigé) de tes exemples 
? et où le label est dans le form.

> Je referai quelques essais dans la journée, pour le moment j'ai un
> nettoyage qui prend des ressources ...
>
>>
>>> Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
>>> second à un attribut ?
>>
>> ??? ce sont des IDs pour chaque, non ?
>> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?
>
> Hum, voyons voir ...
>
>   <label id="QuestionToAsk" name="QuestionToAsk">Please allow the script
> to ask you a question.</label><br />
>
> Pour moi, l'id, c'est QuestionToAsk,

oui, et d'ailleurs :
[cite]
function opening()
{
    this.QuestionToAsk
[/cite]

> alors que "Please allow the script
> to ask you a question", ça serait plutôt l'innerHTML

oui

> et dans le DOM l'innerHTML est onsidéré comme un nœud.

OK

> Au contraire :
>
>   <input type="button" value="Yes" name="yes" id="Yes"
> onClick="ret=true;returnfunction()" />
>
> Là, le texte à afficher est stocké dans l'attribut value,

toutafé

> qu'il sera plus difficile de considérer comme un nœud à lui tout seul.

Peut-être bien ...
et alors ?
quel est le blème ?

Tu nous compares :
	this.QuestionToAsk.innerHTML
et
	document.getElementById('Yes').value
en disant :
	je dois impérativement utiliser la syntaxe développée :
	document.getElementById('Yes').value = strYes;

Comme pour moi il est absolument évident qu'on utilise dans un cas 
'innerHTML' et dans l'autre 'value' il me semblait que le problème était 
pour l'adressage de l'élément visé :
	this.NomId / document.gEBI()

Pour les éléments de formulaires(*), leurs contenus est toujours leurs 
valeurs.

(*) INPUT TEXTAREA SELECT
     (LABEL, FIELDSET sont des balises "normales" +/- de mise en forme)

> En VB on peut écrire quelque chose comme :
> DIM strExemple As String
> strExemple = "Un texte"
> If MsgBox("Voulez-vous afficher l'exemple ?", vbYesNo) = vbYes Then
>     MsgBox strExemple
> End If
>
> alors qu'en Javascript pour faire la même chose il faut utiliser deux
> scripts et écrire quatre fonctions pour faire les liens entre eux.

Le moyen *court* presque acceptable je l'avais donné précédemment :

<script>
function MsgBox(strQuestion,oui,non) {
alert(confirm(strQuestion+'\n\nOui = OK, Non = Annuler')?oui:non);
}
</script>
<button onclick="MsgBox('Ça va bien ?','Bon! Tant mieux.','J\'en suis 
désolé')">Hello</button>


> Est-ce que c'est parce que je ne sais pas faire, ou c'est inévitable ?

jQuery doit certainement avoir ça dans son sac à malice ?!

google ==> boite modale ?


> Pour ce qui est d'écrire le script de question Oui/Non dans le même
> fichier, je ne me représente pas trop, avec un système d'inclusion ça
> doit présenter son intérêt. Tu ferais ça comment ?
> Enfin il y a alert, mais là si on a des boutons c'est avec les intitulés
> standard (true / false, c'est bien ça ?)
> Si je l'ai fait dans un autre fichier c'est pour pouvoir faire un
> affichage -avec d'autres intitulés de boutons que ceux de alert.

Oui.

> Sinon afficher une boîte de dialogue et ensuite modifier les intitulés
> de ses boutons avec un autre programme, j'y ai joué il y a un moment,
> mais ... pas en Javascript.

No, on peut pas.
Le JS s'interdit d’interférer avec le système et les applications de 
l'ordi hôte


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

Tu n'es pas "obligé" d'utiliser un popup, avec le DOM il devient "assez" 
facile de remplacer la fenêtre par un DIV (en position absolute)

> Tu me diras qu'un switch avec juste une valeur on peut critiquer, mais
> comme ça c'est plus facile d'ajouter juste avant le default :
>
>    case "de":
>      strYes = "Ja";
>      strNo = "Nein";

il suffit d'en profiter pour aussi traduire le reste ... ?



Cordialement,
-- 
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8

[toc] | [prev] | [next] | [standalone]


#3005

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-19 00:15 +0200
Message-ID<nmjke2$rbn$1@usenet.pasdenom.info>
In reply to#3004
Le 17/07/2016 à 13:10, SAM a écrit :
> Le 17/07/16 à 01:28, Gloops a écrit :
>>
>> En jQuery on fait même encore plus fort si je ne m'abuse :)
>
> Je sais pas c'que c'est ce jQuery :-(
>
>> Peu-être as-tu remarqué ceci,
>>
>> </HEAD><BODY><form></form>
>> <input
>
> oui, c'est bien pourquoi je l'évoque.
>
>> Ah, ce qui a pu arriver est que comme je n'ai pas mis Form dans la
>> syntaxe d'appel, du coup ça ne retourne un résultat que si le contrôle
>> est en dehors du Form.
>
> Je ne crois pas .... as-tu testé avec mon code (corrigé) de tes exemples
> ? et où le label est dans le form.
>
>> Je referai quelques essais dans la journée, pour le moment j'ai un
>> nettoyage qui prend des ressources ...
>>
>>>
>>>> Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
>>>> second à un attribut ?
>>>
>>> ??? ce sont des IDs pour chaque, non ?
>>> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?
>>
>> Hum, voyons voir ...
>>
>>   <label id="QuestionToAsk" name="QuestionToAsk">Please allow the script
>> to ask you a question.</label><br />
>>
>> Pour moi, l'id, c'est QuestionToAsk,
>
> oui, et d'ailleurs :
> [cite]
> function opening()
> {
>    this.QuestionToAsk
> [/cite]
>
>> alors que "Please allow the script
>> to ask you a question", ça serait plutôt l'innerHTML
>
> oui
>
>> et dans le DOM l'innerHTML est onsidéré comme un nœud.
>
> OK
>
>> Au contraire :
>>
>>   <input type="button" value="Yes" name="yes" id="Yes"
>> onClick="ret=true;returnfunction()" />
>>
>> Là, le texte à afficher est stocké dans l'attribut value,
>
> toutafé
>
>> qu'il sera plus difficile de considérer comme un nœud à lui tout seul.
>
> Peut-être bien ...
> et alors ?
> quel est le blème ?
>
> Tu nous compares :
>     this.QuestionToAsk.innerHTML
> et
>     document.getElementById('Yes').value
> en disant :
>     je dois impérativement utiliser la syntaxe développée :
>     document.getElementById('Yes').value = strYes;
>
> Comme pour moi il est absolument évident qu'on utilise dans un cas
> 'innerHTML' et dans l'autre 'value' il me semblait que le problème était
> pour l'adressage de l'élément visé :
>     this.NomId / document.gEBI()
>
> Pour les éléments de formulaires(*), leurs contenus est toujours leurs
> valeurs.
>
> (*) INPUT TEXTAREA SELECT
>     (LABEL, FIELDSET sont des balises "normales" +/- de mise en forme)
>
>> En VB on peut écrire quelque chose comme :
>> DIM strExemple As String
>> strExemple = "Un texte"
>> If MsgBox("Voulez-vous afficher l'exemple ?", vbYesNo) = vbYes Then
>>     MsgBox strExemple
>> End If
>>
>> alors qu'en Javascript pour faire la même chose il faut utiliser deux
>> scripts et écrire quatre fonctions pour faire les liens entre eux.
>
> Le moyen *court* presque acceptable je l'avais donné précédemment :
>
> <script>
> function MsgBox(strQuestion,oui,non) {
> alert(confirm(strQuestion+'\n\nOui = OK, Non = Annuler')?oui:non);
> }
> </script>
> <button onclick="MsgBox('Ça va bien ?','Bon! Tant mieux.','J\'en suis
> désolé')">Hello</button>
>
>
>> Est-ce que c'est parce que je ne sais pas faire, ou c'est inévitable ?
>
> jQuery doit certainement avoir ça dans son sac à malice ?!
>
> google ==> boite modale ?
>
>
>> Pour ce qui est d'écrire le script de question Oui/Non dans le même
>> fichier, je ne me représente pas trop, avec un système d'inclusion ça
>> doit présenter son intérêt. Tu ferais ça comment ?
>> Enfin il y a alert, mais là si on a des boutons c'est avec les intitulés
>> standard (true / false, c'est bien ça ?)
>> Si je l'ai fait dans un autre fichier c'est pour pouvoir faire un
>> affichage -avec d'autres intitulés de boutons que ceux de alert.
>
> Oui.
>
>> Sinon afficher une boîte de dialogue et ensuite modifier les intitulés
>> de ses boutons avec un autre programme, j'y ai joué il y a un moment,
>> mais ... pas en Javascript.
>
> No, on peut pas.
> Le JS s'interdit d’interférer avec le système et les applications de
> l'ordi hôte
>
>
>>>> 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.
>
> Tu n'es pas "obligé" d'utiliser un popup, avec le DOM il devient "assez"
> facile de remplacer la fenêtre par un DIV (en position absolute)
>
>> Tu me diras qu'un switch avec juste une valeur on peut critiquer, mais
>> comme ça c'est plus facile d'ajouter juste avant le default :
>>
>>    case "de":
>>      strYes = "Ja";
>>      strNo = "Nein";
>
> il suffit d'en profiter pour aussi traduire le reste ... ?
>
>
>
> Cordialement,

J'ai jeté un petit coup d'œil distrait.

Un logiciel a mis quarante huit heures à me trouver deux virus. Il m'en 
a supprimé un, heureusement.
Pour l'autre il m'a renvoyé à Windows Defender Offline, qui n'a rien trouvé.

Ce matin j'étais inquiet : plus de souris, plus de réseau, affichage en 
contraste réduit. Et puis j'ai trouvé. Ce n'était pas un malware qui 
bloquait, c'était le pare-feu, et son interface utilisateur n'était pas 
ouverte alors ça ne se voyait pas.

Là je sais que j'ai un rootkit, heureusement il me laisse bosser, parce 
que ce n'est pas le truc qu'on enlève tout seul en cinq minutes. 
J'espère que les aideurs ne sont pas tous en vacances.



[toc] | [prev] | [next] | [standalone]


#3008

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-19 11:03 +0200
Message-ID<nmkqdd$kfm$1@usenet.pasdenom.info>
In reply to#3003
Le 17/07/2016 à 01:28, Gloops a écrit :
> Il est vrai qu'au moins, on évite le risque de la question qui se pose
> derrière la fenêtre principale, un peu comme l'agent de police qui irait
> se mettre derrière le coffre du côté droit, en se mettant à genoux, pour
> parler au conducteur pour lui demander ses papiers. En chuchotant, bien
> sûr.

Pour éviter ça, dans la fonction opening il faut juste mettre this.focus().

C'est tout bête mais ça fait la différence entre une application qui 
fonctionne et une application qui ne fonctionne pas.

[toc] | [prev] | [next] | [standalone]


#3007

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-19 10:56 +0200
Message-ID<nmkq0p$k4h$1@usenet.pasdenom.info>
In reply to#3002
Le 16/07/2016 à 15:59, SAM a écrit :
> Le 15/07/16 à 14:48, Gloops a écrit :
>> Bonjour tout le monde,
>
> ¿Qué tal?
>
>> 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).
>
> <script>
> function MsgBox(strQuestion,oui,non) {
> alert(confirm(strQuestion+'\n\nOui = OK, Non = Annuler')?oui:non);
> }
> </script>
> <button onclick="MsgBox('Ça va bien ?','Bon! Tant mieux.','J\'en suis
> désolé')">Hello</button>

Si il y a une seule instruction à exécuter, bien sûr, on peut la mettre 
directement dans le code du bouton.

Dans d'autres cas ça peut être, si on répond oui :
- saisir un numéro de client
- valider l'identité qui apparaît
- saisir une commande
- envoyer le récapitulatif de commande par mail

si on répond non, renvoyer à la page d'accueil.

ça pour juste prendre un exemple très bref.

>
>
>> ç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;
>
> Ha ?
> et
>     document.form[0].Yes.value
> ça ne fonctionne pas ?
>
> En tous cas, chez moi :
>       this.Yes.value = strYes;
>       this.No.value = strNo;
> fonctionne !

Effectivement, j'avais mis document.Yes.value ...
this représente la fenêtre, n'est-ce pas ?
Je me représentais que les contrôles appartenaient au document.

>> Est-ce que ça signifie que quelque chose m'a échappé quant à la
>> différence entre ces deux contrôles ?
>
> Tes éléments input ne sont pas dans le FORM ?
> Faute de frappe ? (typo)
>
>> Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
>> second à un attribut ?
>
> ??? ce sont des IDs pour chaque, non ?
> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?

Il faudra que je ressorte l'exercice que j'ai fait l'année dernière, ce 
n'était pas avec XPath mais il s'agissait bien de désigner les 
différentes parties d'un document XML.

>> 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 ?
>
> Pas trop compris la question ... mais si la question est de tout faire
> depuis l'opener ce doit être possible. Cependant ça ne peut fonctionner
> que SI les 2 fenêtres sont déjà et sont encore ouvertes.
> Car là, en l'état, il faut bien attendre que le popup s'ouvre avant
> qu'il puisse renvoyer une réponse. (et que donc c'est mieux que ce soit
> lui qui lance la fonction-de-réponse de l'opener).


ça doit être possible, tu dis, mais alors il faut gérer les événements ...
ça risque de rester quelque temps plus simple avec une fonction pour 
chaque phase du traitement.

>> Je vois qu'après réponse la fenêtre appelante affiche son message un peu
>> avant que la popup se soit fermée.
>
> Mes outils sont trop rapides pour que je puisse voir ça ...
> Mais si l'bazarrh fonctionne c'est bien ce qui doit se passer.
>
>> 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 ?


En fait là-dessus j'ai répondu dans les deux heures de l'ouverture du fil.
Mais tu as raison, j'ai mis un délai fixe alors que c'est pour tenir 
compte d'un délai propre au système client, donc c'est forcément une 
cote mal taillée, qui réduit les nuisances d'un côté mais peut en créer 
de l'autre.



>> A part ça ma popup met pas loin d'une minute à s'afficher sur ma
>> machine,
>
> Quelle machine ?
> Quel OS ?
> Comment sont réglées les préférences du navigateur ? (accepte ou non les
> popups)
> Combien d'onglets y sont déjà ouverts et que renferment-ils ?
> Avec le code simplifié donné en exemple ? (corrigé ? doctype et charset)
> Le navigateur a été fermé/quitté puis relancé ?
> Idem pour Windows ?

Bon j'ai demandé du secours au sujet du rootkit, en espérant que les 
gens ne soient pas en vacances. Une fois que ça sera fait je referai un 
tour pour les virus, a priori ça se gère bien avec des outils. Ensuite, 
bien que je n'aie pas une bête de course, ça devrait aller mieux.

[toc] | [prev] | [next] | [standalone]


#3013

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-08-03 20:41 +0200
Message-ID<nntdt7$2oj$1@usenet.pasdenom.info>
In reply to#3007
Le 19/07/2016 à 10:56, Gloops a écrit :
>
>>> Est-ce que ça signifie que quelque chose m'a échappé quant à la
>>> différence entre ces deux contrôles ?
>>
>> Tes éléments input ne sont pas dans le FORM ?
>> Faute de frappe ? (typo)
>>
>>> Le fait que dans le premier cas on a affaire à un nœud HTML et dans le
>>> second à un attribut ?
>>
>> ??? ce sont des IDs pour chaque, non ?
>> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?
>
> Il faudra que je ressorte l'exercice que j'ai fait l'année dernière, ce
> n'était pas avec XPath mais il s'agissait bien de désigner les
> différentes parties d'un document XML.


Le getElementsByTagName de Javascript apparemment ne retrouve que les 
éléments directement sous la racine ?

Ceux en dessous, il faut aller les chercher par childNodes ?


Je n'ai pas retrouvé ce que j'avais fait, alors je suis obligé de le 
reconstruire. La recherche Google était semble-t-il "Javascript 
parcourir le DOM"

Et on dirait que la technique employée s'appelle WebAPI, si je ne 
confonds pas.

Vu comme ça a l'air demandé il vaut mieux le savoir.

Quelques particularités :
- entre deux balises HTML on a systématiquement une balise text ; 
là-dedans se retrouve le texte qui figure entre les deux balises, 
souvent un saut de ligne
- Le innerHTML d'une balise est récupéré comme un nœud à part, lui aussi 
de type text

Je commence tout juste à réassimiler la syntaxe, je me rappelle qu'il 
existe une notion de type de nœud qui a son importance pour parcourir 
l'arborescence XML proprement.

[toc] | [prev] | [next] | [standalone]


#3016

FromGuiche <guiche@invalid>
Date2016-08-04 07:20 +0200
Message-ID<57a2d0a1$1@news.stben.net>
In reply to#3013
Gloops <gloops@zailes.invalid.org.invalid> Wrote in message:
> Le 19/07/2016 à 10:56, Gloops a écrit :
>>
>>>> Est-ce que ça signifie que quelque chose m'a échappé quant à la
>>>> différence entre ces deux contrôles ?
>>>
>>> Tes éléments input ne sont pas dans le FORM ?
>>> Faute de frappe ? (typo)
>>>
>>>> Le fait que dans le premier cas on a affaire à un n?ud HTML et dans le
>>>> second à un attribut ?
>>>
>>> ??? ce sont des IDs pour chaque, non ?
>>> Alors pourquoi ça t'y fonctionnerait 1 coup sur 2 ?
>>
>> Il faudra que je ressorte l'exercice que j'ai fait l'année dernière, ce
>> n'était pas avec XPath mais il s'agissait bien de désigner les
>> différentes parties d'un document XML.
> 
> 
> Le getElementsByTagName de Javascript apparemment ne retrouve que les 
> éléments directement sous la racine ?
> 
> Ceux en dessous, il faut aller les chercher par childNodes ?
> 

Bizarre à partir du moment où on accède rarement à un élément avec
 parent.getElementsByTagName... MDN ( https://de
veloper.mozilla.org/fr/docs/Web/API/Element/getElementsByTagName)
 dit que « la recherche porte sur le sous-arbre de l'élément
 spécifié » et j'ai plutôt tendance à les croire.

> 
> Je n'ai pas retrouvé ce que j'avais fait, alors je suis obligé de le 
> reconstruire. La recherche Google était semble-t-il "Javascript 
> parcourir le DOM"
> 
> Et on dirait que la technique employée s'appelle WebAPI, si je ne 
> confonds pas.
> 
> Vu comme ça a l'air demandé il vaut mieux le savoir.
> 
> Quelques particularités :
> - entre deux balises HTML on a systématiquement une balise text ; 
> là-dedans se retrouve le texte qui figure entre les deux balises, 
> souvent un saut de ligne
> - Le innerHTML d'une balise est récupéré comme un n?ud à part, lui aussi 
> de type text
> 
> Je commence tout juste à réassimiler la syntaxe, je me rappelle qu'il 
> existe une notion de type de n?ud qui a son importance pour parcourir 
> l'arborescence XML proprement.

En effet tu peux facilement y accéder via la propriété nodeType de
 chaque élément. Les valeurs intéressantes sont Node.ELEMENT_NODE
 (une balise), Node.ATTRIBUTE_NODE (un attribut dans un début de
 balise) et Node.TEXT_NODE (du texte seul, possiblement à côté
 d'une balise <br> ou <i> par exemple).


----Android NewsGroup Reader----
http://usenet.sinaapp.com/

[toc] | [prev] | [next] | [standalone]


#3019

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-08-04 22:27 +0200
Message-ID<no08eq$77d$1@usenet.pasdenom.info>
In reply to#3016
Le 04/08/2016 à 07:20, Guiche a écrit :
>> Ceux en dessous, il faut aller les chercher par childNodes ?
>>
>
> Bizarre à partir du moment où on accède rarement à un élément avec
>  parent.getElementsByTagName... MDN ( https://de
> veloper.mozilla.org/fr/docs/Web/API/Element/getElementsByTagName)
>  dit que « la recherche porte sur le sous-arbre de l'élément
>  spécifié » et j'ai plutôt tendance à les croire.

Ben c'est a priori ce que j'aurais cru aussi, mais j'avais un document 
avec une DIV et un P et aucun des deux n'apparaît dans 
document.getElementsByTagName("*"), alors qu'on obtient HEAD, BODY, FORM 
... six balises si je me rappelle bien.

J'ai essayé à partir de BODY, je n'obtenais pas non plus DIV ni P.

Par childNode en revanche je tombe dessus.

Je me serais gouré quelque part ?



> En effet tu peux facilement y accéder via la propriété nodeType de
>  chaque élément. Les valeurs intéressantes sont Node.ELEMENT_NODE
>  (une balise), Node.ATTRIBUTE_NODE (un attribut dans un début de
>  balise) et Node.TEXT_NODE (du texte seul, possiblement à côté
>  d'une balise <br> ou <i> par exemple).

Ah oui, ça me cause :)

En faisant une recherche dessus je vais bien me rappeler si je dois 
fournir les valeurs numériques.

Je ne me trompe pas c'est bien ça qu'on appelle WebAPI ?


[toc] | [prev] | [next] | [standalone]


#3022

FromGuiche <guiche@invalid>
Date2016-08-05 00:01 +0200
Message-ID<57a3bb4e$1@news.stben.net>
In reply to#3019
Gloops <gloops@zailes.invalid.org.invalid> Wrote in message:
> Le 04/08/2016 à 07:20, Guiche a écrit :
>>> Ceux en dessous, il faut aller les chercher par childNodes ?
>>>
>>
>> Bizarre à partir du moment où on accède rarement à un élément avec
>>  parent.getElementsByTagName... MDN ( https://de
>> veloper.mozilla.org/fr/docs/Web/API/Element/getElementsByTagName)
>>  dit que « la recherche porte sur le sous-arbre de l'élément
>>  spécifié » et j'ai plutôt tendance à les croire.
> 
> Ben c'est a priori ce que j'aurais cru aussi, mais j'avais un document 
> avec une DIV et un P et aucun des deux n'apparaît dans 
> document.getElementsByTagName("*"), alors qu'on obtient HEAD, BODY, FORM 
> ... six balises si je me rappelle bien.
> 
> J'ai essayé à partir de BODY, je n'obtenais pas non plus DIV ni P.
> 
> Par childNode en revanche je tombe dessus.
> 
> Je me serais gouré quelque part ?

Je testerai demain mais bizarrement, je n'ai jamais rencontré ce
 problème (bon, honnêtement, je n'ai écrit qu'une ou deux pages
 qui utilisaient ça mais ça fonctionnait). J'aurai peut-être
 besoin d'un exemple minimal et du nom du navigateur utilisé... La
 seule chose dont je me souviens à propos de ça c'est qu'IE laisse
 (parfois ? toujours ?) traîner des variables nommées selon les
 (certains ?) objets nommés, je pense notamment à des input dans
 des formulaires (grosse surprise quand ça ne fonctionne pas
 ailleurs).
 
>> En effet tu peux facilement y accéder via la propriété nodeType de
>>  chaque élément. Les valeurs intéressantes sont Node.ELEMENT_NODE
>>  (une balise), Node.ATTRIBUTE_NODE (un attribut dans un début de
>>  balise) et Node.TEXT_NODE (du texte seul, possiblement à côté
>>  d'une balise <br> ou <i> par exemple).
> 
> Ah oui, ça me cause :)

Sous IE>=9 et Firefox (je ne sais plus si j'ai testé Chrome), ces
 constantes sont reconnues.

> En faisant une recherche dessus je vais bien me rappeler si je dois 
> fournir les valeurs numériques.
> 
> Je ne me trompe pas c'est bien ça qu'on appelle WebAPI ?

Pour moi ça reste de la bête manipulation du DOM (bien nécessaire
 de nos jours), après MDN semble mettre ça dans cette catégorie.
 J'y voyais avant tout des trucs comme localStorage,
 etc.


----Android NewsGroup Reader----
http://usenet.sinaapp.com/

[toc] | [prev] | [next] | [standalone]


#3035

FromGuiche <guiche@invalid>
Date2016-08-08 06:22 +0200
Message-ID<57a80920@news.stben.net>
In reply to#3022
Guiche <guiche@invalid> Wrote in message:
> Gloops <gloops@zailes.invalid.org.invalid> Wrote in message:
>> Je me serais gouré quelque part ?
> Je testerai demain mais bizarrement, je n'ai jamais rencontré ce
>  problème (bon, honnêtement, je n'ai écrit qu'une ou deux pages
>  qui utilisaient ça mais ça fonctionnait).

Pas tout à fait « demain » mais voilà quelque chose qui
 fonctionne. Vois-tu une différence avec ce que tu as
 ?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Javascript test</title>
<style>
div.c {
    padding: 5px;
    background-color: grey;
    margin-bottom: 10px;
}
p {
    background-color: lightgrey;
}
</style>
<script>
function empty() {
    var output = document.getElementById("output");
    while (output.hasChildNodes())
        output.removeChild(output.childNodes[0]);
}
function enumerate() {
    empty();
    var ol = document.createElement("ol");
    var tn = document.getElementById("tn").value;
    var from = document.getElementById("from").value;
    from = document.getElementsByTagName(from)[0];
    var elements = from.getElementsByTagName(tn);
    for (var i=0; i<elements.length; i++) {
        var li = document.createElement("li");
        li.appendChild(document.createTextNode(elements[i].tagName));
        ol.appendChild(li);
    }
    document.getElementById("output").appendChild(ol);
    return false; //onsubmit
}
</script>
</head>
<body>
    <div class="c">
        <p>bonjour</p>
        <p>vous allez bien ?</p>
    </div>
    <form onsubmit="return enumerate()">
        <label>partir de:
            <select id="from">
                <option>html</option>
                <option>body</option>
                <option>div</option>
            </select></label>
        <label>Tag Name: <input type="text" id="tn" value="*"></label>
        <button>lister</button>
    </form>
    <div id="output">
    </div>
</body>
</html>


----Android NewsGroup Reader----
http://usenet.sinaapp.com/

[toc] | [prev] | [next] | [standalone]


#3039

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-08-08 11:59 +0200
Message-ID<no9l6k$j6j$1@usenet.pasdenom.info>
In reply to#3035
Le 08/08/2016 à 06:22, Guiche a écrit :
> Guiche <guiche@invalid> Wrote in message:
>> Gloops <gloops@zailes.invalid.org.invalid> Wrote in message:
>>> Je me serais gouré quelque part ?
>> Je testerai demain mais bizarrement, je n'ai jamais rencontré ce
>>  problème (bon, honnêtement, je n'ai écrit qu'une ou deux pages
>>  qui utilisaient ça mais ça fonctionnait).
>
> Pas tout à fait « demain » mais voilà quelque chose qui
>  fonctionne. Vois-tu une différence avec ce que tu as
>  ?
>


Pour parler franchement j'ai oublié de sauvegarder la chose, et je n'ai 
pas réussi à reproduire l'erreur, donc il ne me reste qu'un souvenir 
d'un script qui n'a pu me sortir que six nœuds, et là-dedans il n'y 
avait pas H1 ni P que j'avais ajoutés pour test.

Quand j'ai voulu le refaire, j'avais bien (à plat) tout le contenu de 
l'arborescence par document.getElementsByTagName("*")

C'est vrai que c'est bête, il suffisait d'aller dans le répertoire 
sélectionner le fichier, et taper Ctrl C, Ctrl V, avant d'essayer autre 
chose.

Au moins ça m'a donné l'occasion de me remettre à flot au sujet de 
WebAPI, ce qui peut toujours servir.

[toc] | [prev] | [next] | [standalone]


#3044

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-08-08 12:20 +0200
Message-ID<no9mdn$vu0$1@usenet.pasdenom.info>
In reply to#3035
Le 08/08/2016 à 06:22, Guiche a écrit :
> Guiche <guiche@invalid> Wrote in message:
> Pas tout à fait « demain » mais voilà quelque chose qui
>  fonctionne. Vois-tu une différence avec ce que tu as
>  ?

Oui je vois la possibilité de filtrer :)

Et une insertion plus propre dans une DIV de destination.




Si on veut faire apparaître le texte c'est un peu compliqué, vu que pour 
certaines balises on aura innerHTML, pour d'autres value, il doit bien y 
en avoir pour lesquelles c'est Text ; peut-être pas Caption mais il 
faudrait vérifier. On pourrait se fendre d'une fonction qui parcourt 
tous les cas de figure -encore qu'il finirait bien par se glisser un 
presque quelque part.

Avec WebAPI on trace toute l'arborescence y compris les attributs, donc 
l'intitulé finit toujours par apparaître quelque part, même si c'est 
dans un nœud enfant. Mais ce que je n'ai pas fait du coup c'est le faire 
apparaître à un endroit unique.


[toc] | [prev] | [next] | [standalone]


#3009

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-19 13:17 +0200
Message-ID<nml27r$ptk$1@usenet.pasdenom.info>
In reply to#3002
Le 16/07/2016 à 15:59, SAM a écrit :
> Des popups qui se causent :
> http://stephane.moriaux.pagesperso-orange.fr/truc/popup_oui_non/


Ses noms de fonctions sont rigolos.

A part ça ça n'a pas l'air évident de détecter la fermeture d'une fenêtre.
Dans F2, juste après opener.Fn1.Close() on demande 
alarm(opener.Fn1.texto) et on a un bonjour du défunt.
Je me demande si on devrait ajouter explicitement Fn1 = null, mais ça ne 
marcherait pas si on fermait la fenêtre avec son bouton système.
A moins de définir l'événement de fermeture de la fenêtre ; je ne sais 
pas si ça se fait en Javascript, ça ?


[toc] | [prev] | [next] | [standalone]


#3010

FromSAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid>
Date2016-07-22 23:56 +0200
Message-ID<5792969e$0$5260$426a74cc@news.free.fr>
In reply to#3009
Le 19/07/16 à 13:17, Gloops a écrit :
> Le 16/07/2016 à 15:59, SAM a écrit :
>> Des popups qui se causent :
>> http://stephane.moriaux.pagesperso-orange.fr/truc/popup_oui_non/
>
>
> Ses noms de fonctions sont rigolos.
>
> A part ça ça n'a pas l'air évident de détecter la fermeture d'une fenêtre.
> Dans F2, juste après opener.Fn1.Close() on demande
> alarm(opener.Fn1.texto) et on a un bonjour du défunt.

Non.
J'ai ça uniquement dans Chrome (sur tablette Android) et seulement quand 
je ferme l'onglet popup "manuellement" et parce que Chrome lambine à 
indiquer qu'on a fermé un onglet (Attention ! tu sucres peut-être les 
fraises et t'as p't'êt' fermé un onglet sans le vouloir ?)

> Je me demande si on devrait ajouter explicitement Fn1 = null, mais ça ne
> marcherait pas si on fermait la fenêtre avec son bouton système.

google donc "onunload"

> A moins de définir l'événement de fermeture de la fenêtre ; je ne sais
> pas si ça se fait en Javascript, ça ?

voir ci-dessus

Mébon ... ça ne va pas réparer ta bécane ni dé-paternaliser Chrome ...



Cordialement,
-- 
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8

[toc] | [prev] | [next] | [standalone]


#3011

FromGloops <gloops@zailes.invalid.org.invalid>
Date2016-07-23 00:24 +0200
Message-ID<nmu6fk$bhq$1@usenet.pasdenom.info>
In reply to#3010
Le 22/07/2016 à 23:56, SAM a écrit :
> Le 19/07/16 à 13:17, Gloops a écrit :
>> Le 16/07/2016 à 15:59, SAM a écrit :
>>> Des popups qui se causent :
>>> http://stephane.moriaux.pagesperso-orange.fr/truc/popup_oui_non/
>>
>>
>> Ses noms de fonctions sont rigolos.
>>
>> A part ça ça n'a pas l'air évident de détecter la fermeture d'une
>> fenêtre.
>> Dans F2, juste après opener.Fn1.Close() on demande
>> alarm(opener.Fn1.texto) et on a un bonjour du défunt.
>
> Non.
> J'ai ça uniquement dans Chrome (sur tablette Android) et seulement quand
> je ferme l'onglet popup "manuellement" et parce que Chrome lambine à
> indiquer qu'on a fermé un onglet (Attention ! tu sucres peut-être les
> fraises et t'as p't'êt' fermé un onglet sans le vouloir ?)


Ah ben moi c'est sur Firefox. J'essaierai aussi avec IE.
C'était des vraies pop-up, pas dans des onglets.



>
>> Je me demande si on devrait ajouter explicitement Fn1 = null, mais ça ne
>> marcherait pas si on fermait la fenêtre avec son bouton système.
>
> google donc "onunload"

Ah ben oui c'est pourtant vrai.
Il va falloir que je fasse un peu mumuse avec ça.

>
>> A moins de définir l'événement de fermeture de la fenêtre ; je ne sais
>> pas si ça se fait en Javascript, ça ?
>
> voir ci-dessus
>
> Mébon ... ça ne va pas réparer ta bécane ni dé-paternaliser Chrome ...

Surtout en Juillet.
Il y a des gens pointus sur le nettoyage, mais quand ils sont allongés 
sur la plage, forcément, ils sont moins réactifs.


> Cordialement,

Pareil.

[toc] | [prev] | [standalone]


Back to top | Article view | fr.comp.lang.javascript


csiph-web