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

Envoyer une séquence de touches depuis Javascript

18 réponses
Avatar
adalbert
Bonjour =E0 tous,

J'essaye d'envoyer une s=E9quences de touches (ex: CTRL+v) sur un <span>
contenteditable=3D"true" depuis une fonction Javascript et ce en
Firefox.

Une id=E9e ?

Merci d'avance,
Ad

10 réponses

1 2
Avatar
Pascal PONCET
adalbert a écrit :
Bonjour à tous,



Bonjour,

J'essaye d'envoyer une séquences de touches (ex: CTRL+v) sur un <span>
contenteditable="true" depuis une fonction Javascript et ce en
Firefox.



Et récupérer le presse-papier, puis déclencher la webcam aussi ?

Une idée ?



Oui : j'espère bien que ça ne sera jamais possible !

Merci d'avance,



Pas de quoi, big brother ;-)

Ad



Pascal
Avatar
adalbert
On 2 jan, 12:42, Pascal PONCET wrote:
adalbert a écrit :

> Bonjour à tous,

Bonjour,

> J'essaye d'envoyer une séquences de touches (ex: CTRL+v) sur un <span >
> contenteditable="true"  depuis une fonction Javascript et ce en
> Firefox.

Et récupérer le presse-papier, puis déclencher la webcam aussi ?

> Une idée ?

Oui : j'espère bien que ça ne sera jamais possible !

> Merci d'avance,

Pas de quoi, big brother ;-)

> Ad

Pascal



J'attendais plutôt une réponse censée. Je travaille sur un projet
sérieux qui a besoin d'effectuer un CTRL+v depuis une fonction
Javascript; et big brother n'a rien à avoir avec le presse papier, il
ne faut pas tout mélanger.
Avatar
Méta-MCI \(MVP\)
Bonsoir !

C'est possible avec IE, en local (ça ne passera pas, depuis Internet).
Je doute que FF offre cette possibilité.

@+
--
MCI
Avatar
Pascal PONCET
adalbert a écrit :
J'attendais plutôt une réponse censée.



Censée quoi ? Ah...sensée !

Je travaille sur un projet
sérieux qui a besoin d'effectuer un CTRL+v depuis une fonction
Javascript; et big brother n'a rien à avoir avec le presse papier, il
ne faut pas tout mélanger.



Je ne mélange pas.
A priori, quand on utilise "contentEditable" c'est qu'on veut disposer
de fonctions d'édition de texte enrichi dans un bloc, non ?

Et, dans ce contexte, je ne vois pas à quoi d'autre peut servir la
commande "Ctrl + V" qu'à copier le contenu du clipboard !
Pour ce faire, inutile de générer la séquence clavier, il suffit
d'utiliser la commande "paste" en paramètre de la méthode "execCommand()".

Voir (anglais) :
https://developer.mozilla.org/En/Rich-Text_Editing_in_Mozilla

Mais, pour que ça fonctionne, il faut que le client Web ait autorisé ce
genre de manip, ce qui n'est pas gagné. C'est pour ça que j'évoquai big
brother.

Si, par contre, il s'agit d'émuler les "sendKeys" de VB dans Firefox,
non seulement je ne sais pas faire mais, en plus, je répète que j'espère
bien qu'on ne puisse pas le faire. Question de sécurité élémentaire.
Avatar
Méta-MCI \(MVP\)
Bonsoir !

"sendKeys" de VB



Petite correction : sendkeys de WSH (WScript.Shell), utilisable aussi
bien avec VBscript qu'avec JScript (et autres).
Mais, ça ne change rien au fond du problème.

@-salutations
--
Michel Claveau
Avatar
SAM
Le 1/2/09 12:50 PM, adalbert a écrit :
On 2 jan, 12:42, Pascal PONCET wrote:
Une idée ?


Oui : j'espère bien que ça ne sera jamais possible !



J'attendais plutôt une réponse censée.



c'était censé !

Le JS d'un brouteur ne peut rien réaliser de "concret" sur l'ordi du
visiteur, c'est *interdit*.

On pourra détecter Contr+v mais pas l'appliquer.

Je travaille sur un projet
sérieux qui a besoin d'effectuer un CTRL+v depuis une fonction



Quelle drôle d'idée !

N'est-il pas plus simple de lancer une vraie fonction en JS ?

range
selection
innerHTML
appendChild
et ce genre de choses

C'est censé faire quoi, au final ?

--
sm
Avatar
adalbert
On 2 jan, 18:23, Pascal PONCET wrote:
adalbert a écrit :

> J'attendais plutôt une réponse censée.  

Censée quoi ? Ah...sensée !

> Je travaille sur un projet
> sérieux qui a besoin d'effectuer un CTRL+v depuis une fonction
> Javascript; et big brother n'a rien à avoir avec le presse papier, il
> ne faut pas tout mélanger.

Je ne mélange pas.
A priori, quand on utilise "contentEditable" c'est qu'on veut disposer
de fonctions d'édition de texte enrichi dans un bloc, non ?

Et, dans ce contexte, je ne vois pas à quoi d'autre peut servir la
commande "Ctrl + V" qu'à copier le contenu du clipboard !
Pour ce faire, inutile de générer la séquence clavier, il suffit
d'utiliser la commande "paste" en paramètre de la méthode "execComman d()".

Voir (anglais) :https://developer.mozilla.org/En/Rich-Text_Editing_in_Moz illa

Mais, pour que ça fonctionne, il faut que le client Web ait autorisé ce
genre de manip, ce qui n'est pas gagné. C'est pour ça que j'évoquai big
brother.

Si, par contre, il s'agit d'émuler les "sendKeys" de VB dans Firefox,
non seulement je ne sais pas faire mais, en plus, je répète que j'esp ère
bien qu'on ne puisse pas le faire. Question de sécurité élémentai re.



En effet, le but est de coller le contenu du presse papier dans une
application web pour des utilisateurs qui ne connaissent pas
nécessairement le Shift+Insert ou le Ctrl+V.
Sur IE, le execCommand() fonctionne très bien mais pas en FF, raison
pour laquelle je pensais faire qqch de semblable à ce que j'ai déjà
fait en VB avec sendKeys, vous avez bien compris !!
Avatar
adalbert
On 2 jan, 19:21, SAM
wrote:
Le 1/2/09 12:50 PM, adalbert a écrit :

> On 2 jan, 12:42, Pascal PONCET wrote:
>>> Une idée ?
>> Oui : j'espère bien que ça ne sera jamais possible !

> J'attendais plutôt une réponse censée.

c'était censé !

Le JS d'un brouteur ne peut rien réaliser de "concret" sur l'ordi du
visiteur, c'est *interdit*.

On pourra détecter Contr+v mais pas l'appliquer.

>  Je travaille sur un projet
> sérieux qui a besoin d'effectuer un CTRL+v depuis une fonction

Quelle drôle d'idée !

N'est-il pas plus simple de lancer une vraie fonction en JS ?

range
selection
innerHTML
appendChild
et ce genre de choses

C'est censé faire quoi, au final ?

--
sm



Le but est de coller le contenu du presse papier en Firefox dans un
span contenteditable="true".
IE le fait aisément avec execCommand() mais pas FF :-(
Les utilisateurs de l'application ne connaissent pas nécessairement
les séquences de touches Shift+Insert ou Ctrl+V.
Avatar
SAM
Le 1/4/09 10:12 PM, adalbert a écrit :
On 2 jan, 19:21, SAM
wrote:

C'est censé faire quoi, au final ?



Le but est de coller le contenu du presse papier en Firefox dans un
span contenteditable="true".



comme le presse-papier dépend du système et non pas de l'application, il
n'y a donc pas de presse-papier dans Firefox.

Ceci étant, et encore une fois, le JavaScript se refuse à intervenir sur
les p'tites n'affaires de l'utilisateur.
On ne peut même pas faire afficher une image du DD du visiteur alors
qu'il l'aura choisie lui-même grace à l'input type=file,
alors ... un copié-collé ... c'est pas gagné.

Sans doute on doit pouvoir faire un copié d'une sélection dans la page
et la coller dans un textarea, par exemple. Mais ce ne sera pas par les
touches-clavier (sauf à les émuler en +).

Une piste :
<http://www.google.fr/search?q=selectionstart>

IE le fait aisément avec execCommand() mais pas FF :-(



IE se permet plein de fantaisies tellement il est interfacé avec Windows.
Ce n'est d'ailleurs pas pour ça qu'il utilise des fonctions JavaScript
pour parvenir à agir sur l'ordi et autre.

execCommand() je ne sais ce que c'est, en tous cas ce n'est pas du JS.

Attention à ne pas confondre
- le vScript (M$)
et le
- JavaScript (les autres)
chacun usant +/- à sa façon de directives "standardisées"
sauf que vscript les a plus à sa mode et qu'il bénéficie de tt un tas de
choses supplémentaires dont bp "abusives" sinon sujettes à l'insécurité.

Les utilisateurs de l'application ne connaissent pas nécessairement
les séquences de touches Shift+Insert ou Ctrl+V.



Là, il est plus que temps de le leur apprendre ;-)

(encore que ... Shift + Insert
... je ne sais même pas ce qu'est cet Insert ?!
J'ai ça sur mon Mac ?)

--
sm
Avatar
adalbert
On 4 jan, 23:18, SAM
wrote:
Le 1/4/09 10:12 PM, adalbert a écrit :

> On 2 jan, 19:21, SAM
> wrote:

>> C'est censé faire quoi, au final ?

> Le but est de coller le contenu du presse papier en Firefox dans un
> span contenteditable="true".

comme le presse-papier dépend du système et non pas de l'application, il
n'y a donc pas de presse-papier dans Firefox.

Ceci étant, et encore une fois, le JavaScript se refuse à intervenir sur
les p'tites n'affaires de l'utilisateur.
On ne peut même pas faire afficher une image du DD du visiteur alors
qu'il l'aura choisie lui-même grace à l'input type=file,
alors ... un copié-collé ... c'est pas gagné.

Sans doute on doit pouvoir faire un copié d'une sélection dans la pag e
et la coller dans un textarea, par exemple. Mais ce ne sera pas par les
touches-clavier (sauf à les émuler en +).

Une piste :
<http://www.google.fr/search?q=selectionstart>

> IE le fait aisément avec execCommand() mais pas FF :-(

IE se permet plein de fantaisies tellement il est interfacé avec Window s.
Ce n'est d'ailleurs pas pour ça qu'il utilise des fonctions JavaScript
pour parvenir à agir sur l'ordi et autre.

execCommand() je ne sais ce que c'est, en tous cas ce n'est pas du JS.


Il s'agit d'une méthode permettant d'exécuter des opérations sur un
contenu éditable (ex: bold, italic, underline, align, etc).
C'est assez standard et compatible IE et FF depuis déjà pas mal de
versions (le contenteditable existe depuis FF3, avant, cela portait un
autre nom qui m'échappe à l'instant).

Attention à ne pas confondre
- le vScript (M$)


Je ne l'utilise pas, l'applic doit être compatible IE et FF (et autres
si possible)
et le
- JavaScript (les autres)
chacun usant +/- à sa façon de directives "standardisées"
sauf que vscript les a plus à sa mode et qu'il bénéficie de tt un t as de
choses supplémentaires dont bp "abusives" sinon sujettes à l'insécu rité.

> Les utilisateurs de l'application ne connaissent pas nécessairement
> les séquences de touches Shift+Insert ou Ctrl+V.

Là, il est plus que temps de le leur apprendre ;-)


Hum, cela dépasse mes possibilités, je ne verrai jamais la majorité
d'entre eux; et leur faire lire le help n'est pas chose aisée ;-)

(encore que ... Shift + Insert
  ... je ne sais même pas ce qu'est cet Insert ?!
  J'ai ça sur mon Mac ?)


Je n'ai pas cela non plus sur mon MacBook Air ;-)
Et oui, même si 99% des utilisateurs de l'applic sont XP ou Vista, je
développe depuis un Léopard ;-)

--
sm


1 2