Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.javascript > #3000 > unrolled thread
| Started by | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| First post | 2016-07-15 14:48 +0200 |
| Last post | 2016-07-23 00:24 +0200 |
| Articles | 18 — 3 participants |
Back to article view | Back to fr.comp.lang.javascript
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
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-07-15 14:48 +0200 |
| Subject | Question 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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Guiche <guiche@invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Guiche <guiche@invalid> |
|---|---|
| Date | 2016-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]
| From | Guiche <guiche@invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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]
| From | SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> |
|---|---|
| Date | 2016-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]
| From | Gloops <gloops@zailes.invalid.org.invalid> |
|---|---|
| Date | 2016-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