Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

No default button on alert()

9 réponses
Avatar
Gloops
Hello everybody,

In Javascript we have an alert() instruction that has three missions :
- show a text message
- show a default button
- close the window that showed the message when the user clicks on the
button.

Well, the first and the third points are OK, but there is no default button.

You can have the cursor in an angle of the screen, have a message
displayed in the center, so very far, and the cursor of your mouse will
not move, even if you explicitly checked to "move the cursor to the
default button in dialog boxes".

To correct that, is there nothing more simple than to create a custom
window each time you have a message to display ?

9 réponses

Avatar
Olivier Miakinen
Le 07/01/2016 22:08, Gloops a écrit :
Hello everybody,



Bonjour à toi.

In Javascript we have an alert() instruction that has three missions :
[...]



Je ne suis pas sûr d'avoir tout compris. Et si tu posais la question en
français ? Peut-être même en donnant un exemple de page web, et en
disant précisément quel besoin tu as ?

P.-S. : je n'ai pas encore eu l'occasion de te le dire dans les autres
groupes où je te lis, mais l'adresse invalide est censée se terminer
par « .invalid » (nom de domaine de premier niveau réservé à cet effet)
et pas par « .invalid.org ».

Cordialement,
--
Olivier Miakinen
Avatar
Gloops
Le 08/01/2016 07:21, Olivier Miakinen a écrit :
Le 07/01/2016 22:08, Gloops a écrit :
Hello everybody,



Bonjour à toi.

In Javascript we have an alert() instruction that has three missions :
[...]



Je ne suis pas sûr d'avoir tout compris. Et si tu posais la question en
français ? Peut-être même en donnant un exemple de page web, et en
disant précisément quel besoin tu as ?

P.-S. : je n'ai pas encore eu l'occasion de te le dire dans les autres
groupes où je te lis, mais l'adresse invalide est censée se terminer
par « .invalid » (nom de domaine de premier niveau réservé à cet effet)
et pas par « .invalid.org ».

Cordialement,




Salut,

Oh mince, je n'avais pas fait gaffe qu'il y avait un newsgroup
javascript en Français ...

Bon alors l'instruction alert(), pour moi, a trois missions :
- afficher un message texte
- afficher un bouton par défaut
- fermer la boîte de dialogue quand l'utilisateur clique sur le bouton
par défaut

Pour afficher le message et fermer la boîte de dialogue c'est OK, mais
il n'y a pas de bouton par défaut. A telle enseigne que si on a le
curseur à un bout de l'écran et le message qui s'ouvre à l'autre bout
(j'exagère à moitié puisque le message est au milieu), ben nada, le
curseur de la souris ne bouge pas même si dans le panneau de
configuration on a demandé de "déplacer le curseur de la souris sur le
bouton par défaut dans les boîtes de dialogue".

Y a-t-il mieux à proposer pour corriger ça que d'écrire systématiquement
une fenêtre personnalisée à chaque message à afficher ?

J'avais déjà remarqué que pour une question à laquelle répondre par oui
ou par non, il faut compter une semaine à comprendre pourquoi la moitié
des sites qui présentent jquery ne mettent pas le protocole dans
l'adresse du repository dans leurs exemples, contre une heure pour lire
la doc de VBScript pour un MsgBox, maintenant encore une couche avec
juste l'affichage d'un message standard ...

(j'ai ajouté un invalid, qui apparemment sera pris en compte la
prochaine fois ; d'un autre côté si on normalise trop la présentation de
l'adresse, ce n'est même plus la peine de mettre invalid du tout)
Avatar
Olivier Miakinen
Le 08/01/2016 08:42, Gloops m'a répondu :

Oh mince, je n'avais pas fait gaffe qu'il y avait un newsgroup
javascript en Français ...



;-)

C'est vrai qu'il existe aussi un groupe international dont le nom
est presque le même, avec « fr. » en moins. Tu peux aussi poser la
question là-bas si tu ne l'as pas fait.

Bon alors l'instruction alert(), pour moi, a trois missions :
- afficher un message texte
- afficher un bouton par défaut
- fermer la boîte de dialogue quand l'utilisateur clique sur le bouton
par défaut



Je n'avais effectivement pas compris dans le premier article, mais
pas seulement parce qu'il était en anglais : dans ta troisième mission
tu avais écrit « button » et pas « default button », ce qui m'avait fait
croire en combinaison avec le titre que tu aurais voulu avoir deux
boutons au lieu d'un, et qu'il te manquait justement le « _default_
button ».

Pour afficher le message et fermer la boîte de dialogue c'est OK, mais
il n'y a pas de bouton par défaut. A telle enseigne que si on a le
curseur à un bout de l'écran et le message qui s'ouvre à l'autre bout
(j'exagère à moitié puisque le message est au milieu), ben nada, le
curseur de la souris ne bouge pas même si dans le panneau de
configuration on a demandé de "déplacer le curseur de la souris sur le
bouton par défaut dans les boîtes de dialogue".



Si j'ai tout bien compris, la fonction alert() de JavaScript fait
forcément appel à une fonctionnalité indépendante de JavaScript, gérée
directement par le système d'exploitation, et dont le comportement
sera peut-être différent selon que tu es sur Linux, Unix, Windows ou
MacOS, pourvu que la fonctionnalité « rendre la main à JavaScript
quand l'utilisateur a lu le message » soit correctement rendue.

Du coup, pour ce qui est de la gestion du clavier et de la souris par
rapport à cette fenêtre, il faudrait peut-être chercher dans les
paramètres de ton système d'exploitation plutôt que dans JavaScript.

... Mais je peux me tromper !

Y a-t-il mieux à proposer pour corriger ça que d'écrire systématiquement
une fenêtre personnalisée à chaque message à afficher ?



Je passe.

J'avais déjà remarqué que pour une question à laquelle répondre par oui
ou par non, il faut compter une semaine à comprendre pourquoi la moitié
des sites qui présentent jquery ne mettent pas le protocole dans
l'adresse du repository dans leurs exemples, contre une heure pour lire
la doc de VBScript pour un MsgBox, maintenant encore une couche avec
juste l'affichage d'un message standard ...



Ok, mais VBScript n'est pas présent sur Linux par exemple, alors que les
scripts JavaScript sont censés fonctionner quel que soit l'O.S.

(j'ai ajouté un invalid, qui apparemment sera pris en compte la
prochaine fois ;



Merci. À voir, donc.

d'un autre côté si on normalise trop la présentation de
l'adresse, ce n'est même plus la peine de mettre invalid du tout)



Tu veux dire si on avait une autre règle de reconnaissance que le
TLD normalisé .invalid ? Oui, certes, mais pourquoi s'embêter à
en définir une autre puisque celle-ci existe, ne requiert que le
fait de réserver ce seul TLD à l'IANA (ce qui est fait depuis
quelques années), et est super facile à repérer, même par les
logiciels ?
Avatar
Gloops
Le 08/01/2016 09:31, Olivier Miakinen a écrit :
Le 08/01/2016 08:42, Gloops m'a répondu :

Oh mince, je n'avais pas fait gaffe qu'il y avait un newsgroup
javascript en Français ...



;-)

C'est vrai qu'il existe aussi un groupe international dont le nom
est presque le même, avec « fr. » en moins. Tu peux aussi poser la
question là-bas si tu ne l'as pas fait.



C'est ce que je croyais avoir fait ...


Je n'avais effectivement pas compris dans le premier article, mais
pas seulement parce qu'il était en anglais : dans ta troisième mission
tu avais écrit « button » et pas « default button », ce qui m'avait fait
croire en combinaison avec le titre que tu aurais voulu avoir deux
boutons au lieu d'un, et qu'il te manquait justement le « _default_
button ».



Ah la question à deux réponses possibles, c'est aussi tout un sujet. Il
existe une fonction confirm(), en Javascript, qui permet deux réponses
possibles, mais obligatoirement avec les boutons OK Cancel. Si on veut
Oui Non, c'est tout un taf.

J'ai mis en œuvre la création par script d'une division comportant deux
boutons, supprimée dès qu'on a cliqué sur un des deux boutons. Et j'ai
assimilé la manœuvre avec jquery. Dans les deux cas c'est plus long au
départ à assimiler que If MsgBox("Question ?", vbYesNo) = vbYes Then ...
intégrée comme constituant essentiel du langage.

Si j'ai tout bien compris, la fonction alert() de JavaScript fait
forcément appel à une fonctionnalité indépendante de JavaScript, gérée
directement par le système d'exploitation, et dont le comportement
sera peut-être différent selon que tu es sur Linux, Unix, Windows ou
MacOS, pourvu que la fonctionnalité « rendre la main à JavaScript
quand l'utilisateur a lu le message » soit correctement rendue.

Du coup, pour ce qui est de la gestion du clavier et de la souris par
rapport à cette fenêtre, il faudrait peut-être chercher dans les
paramètres de ton système d'exploitation plutôt que dans JavaScript.




Ah mais c'est ce que j'ai commencé par faire. ça ne prend pas longtemps,
d'ailleurs, ça consiste à aller vérifier, dans le gestionnaire de souris
dans le panneau de configuration, qu'on a coché la case "déplacer le
curseur vers le bouton par défaut dans les boîtes de dialogue".

Mais si aucun des boutons n'est défini par défaut ...

D'ailleurs je n'ai pas encore vraiment testé les boutons par défaut dans
les boîtes de dialogue jquery.

Et au demeurant il y a d'autres aspects de jquery sur lesquels il faut
que je progresse.


... Mais je peux me tromper !

Y a-t-il mieux à proposer pour corriger ça que d'écrire systématiquement
une fenêtre personnalisée à chaque message à afficher ?



Je passe.



Espérons que quelqu'un en dira plus car c'était le but ;)

Ok, mais VBScript n'est pas présent sur Linux par exemple, alors que les
scripts JavaScript sont censés fonctionner quel que soit l'O.S.

(j'ai ajouté un invalid, qui apparemment sera pris en compte la
prochaine fois ;



Merci. À voir, donc.

d'un autre côté si on normalise trop la présentation de
l'adresse, ce n'est même plus la peine de mettre invalid du tout)



Tu veux dire si on avait une autre règle de reconnaissance que le
TLD normalisé .invalid ? Oui, certes, mais pourquoi s'embêter à
en définir une autre puisque celle-ci existe, ne requiert que le
fait de réserver ce seul TLD à l'IANA (ce qui est fait depuis
quelques années), et est super facile à repérer, même par les
logiciels ?




Je veux dire, si il y a une norme, c'est facile de l'exploiter dans un
script, donc autant mettre l'adresse en clair.

C'est pour ça que chacun fait à sa sauce, certains se contentent
d'ajouter invalid, d'autres mettent un caractère en plus et le disent
dans le mail, d'autres transforment une partie du nom ...

Il est vrai que maintenant c'est moins vital puisque les pirates
empruntent d'autres voies.
Avatar
Paul Gaborit
À (at) Fri, 8 Jan 2016 08:42:26 +0100,
Gloops écrivait (wrote):
Y a-t-il mieux à proposer pour corriger ça que d'écrire systématiquement
une fenêtre personnalisée à chaque message à afficher ?



Les alert() de javascript n'ont d'utilité que pour le
développeur. Aucun concepteur censé n'utiliserait cela pour une
interface réelle avec un utilisateur.

Pour le développeur, la console javascript peut remplacer les
alert(). Si on complète cela en utilisant le débugueur fourni par tous
les navigateurs modernes, les alert() ne servent plus à rien.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Olivier Miakinen
Le 08/01/2016 13:35, Paul Gaborit répondit à Gloops :

Les alert() de javascript n'ont d'utilité que pour le
développeur. Aucun concepteur censé n'utiliserait cela pour une
interface réelle avec un utilisateur.

Pour le développeur, la console javascript peut remplacer les
alert(). Si on complète cela en utilisant le débugueur fourni par tous
les navigateurs modernes, les alert() ne servent plus à rien.



Au moins, ça a le mérite d'être clair. ;-)
Avatar
Olivier Miakinen
Le 08/01/2016 09:31, je répondis à Gloops :

Si j'ai tout bien compris, la fonction alert() de JavaScript fait
forcément appel à une fonctionnalité indépendante de JavaScript, gérée
directement par le système d'exploitation, et dont le comportement
sera peut-être différent selon que tu es sur Linux, Unix, Windows ou
MacOS, pourvu que la fonctionnalité « rendre la main à JavaScript
quand l'utilisateur a lu le message » soit correctement rendue.



J'avais oublié de préciser que, du fait que cette fonctionnalité est
fournie telle quelle par l'O.S., y compris son aspect, on ne peut pas
lui attribuer la charte graphique du site. Du coup elle n'est pas
tellement recommandable en dehors d'une utilisation de secours (un
message d'erreur quand le site ne sait plus rien gérer correctement).

Cf. aussi la réponse de Paul Gaborit.
Avatar
Gloops
Le 08/01/2016 13:35, Paul Gaborit a écrit :

À (at) Fri, 8 Jan 2016 08:42:26 +0100,
Gloops écrivait (wrote):
Y a-t-il mieux à proposer pour corriger ça que d'écrire systématiquement
une fenêtre personnalisée à chaque message à afficher ?



Les alert() de javascript n'ont d'utilité que pour le
développeur. Aucun concepteur censé n'utiliserait cela pour une
interface réelle avec un utilisateur.

Pour le développeur, la console javascript peut remplacer les
alert(). Si on complète cela en utilisant le débugueur fourni par tous
les navigateurs modernes, les alert() ne servent plus à rien.





C'est comme ça qu'on se retrouve à pisser de la ligne pour ce que
d'autres langages réalisent sans problème en une seule instruction.
Avatar
Olivier Miakinen
Le 09/01/2016 14:08, Gloops répondait à Paul Gaborit :

Les alert() de javascript n'ont d'utilité que pour le
développeur. Aucun concepteur censé n'utiliserait cela pour une
interface réelle avec un utilisateur.



C'est comme ça qu'on se retrouve à pisser de la ligne pour ce que
d'autres langages réalisent sans problème en une seule instruction.



D'autres langages ? Ou bien d'autres langages associés à une bonne
bibliothèque de fonctions prédéfinies ? Ces bibliothèques, il en
existe en certain nombre en JavaScript, et bien sûr tu peux aussi
te développer ta petite boîte à outils de fonctions indispensables.

Par ailleurs, tu peux préférer développer dans un langage autre que
JavaScript s'il contient par défaut les boîtes de dialogue dont tu
as besoin, mais dans ce cas ça risque fort de ne tourner que sur un
système donné, et pas sur des sites web accessibles via un grand
nombre de navigateurs différents sur un grand nombre de systèmes
d'exploitation différents.

Désolé,
--
Olivier Miakinen

P.-S. : merci pour ton 'From' respectueux des autres.