Page 1 sur 1

[résolu] javascript Chrome onkeyup

Publié : 07 juil. 2010, 20:13
par lpgc
le onkeyup n'a pas l'air d'être disponible pour les balises avec Google Chrome

il y a moyen de capter le onkeyup au niveau du document mais aucune indication ne précise d'où provient l'événement

comment faire !? ... ( déjà eut ce problème ? )

par contre le onmouseover et le onclick réagissent correctement ...

Re: javascript Chrome onkeyup

Publié : 13 juil. 2010, 14:57
par ornitho13
bonjour,

le onkeyup existe sur chrome ( pour l'avoir déjà utilisé)
Il y a 2 solutions à ton probleme:
- soit tu gères l'evenement coté javascript : element.addeventListener("onkeyup", function()...
- ou alors tu ajoutes le event dans ton tag html. je m'explique:

Code : Tout sélectionner

 <input type="text" value="" name="nomInput" onkeyup="actionSurKeyUp(event)"/>
voila j'espere que cela t'aidera

Re: javascript Chrome onkeyup

Publié : 13 juil. 2010, 15:18
par lpgc
oui ... j'ai déjà essayé la seconde solution ... et sur un DIV ... çà fonctionne aussi !?

que ce soit IE, Firefox ou Opera ( pas certain pour Opera !? ... je n'ai pas essayé )

le onkeyup sur la balise DIV fonctionne mais pas avec google Chrome

Re: javascript Chrome onkeyup

Publié : 13 juil. 2010, 18:49
par ornitho13
Sur une div, cela parait difficile, en effet le onkeyup n'est valide que sur les tag de type input et textarea donc...
en ce qui concerne la provenance, il faut utiliser event.currentTarget qui te donne l'élément d'où provient l'event

bon courage

Re: javascript Chrome onkeyup

Publié : 13 juil. 2010, 19:07
par lpgc
Merci, ... je continue à chercher ... :D

mais bon c'est bien parceque j'essaie maintenant aussi de tester sur Chrome en plus de IE, Firefox et Opera
qui eux fonctionnent bien pour un onkeyup sur un DIV

le DIV peut contenir énormément d'informations de toutes sortes surlesquels on n'a pas toujours la main
et mettre un événement à un niveau supérieur
permet à la fois de simplifier les traitements
et aussi de limiter le code puisqu'il est centralisé ...

Re: javascript Chrome onkeyup

Publié : 17 juil. 2010, 01:39
par ornitho13
si tu pouvais montrer un peu de code, je verrais peut etre mieux le probleme.

merci

Re: javascript Chrome onkeyup

Publié : 17 juil. 2010, 11:14
par lpgc
http://www.dvdlib.be/test/testchromekeyup.htm ...

fonctionne bien sous Firefox, IE et Opera ... mais pas avec Google Chrome

un simple DIV ne répond pas à l'événement onkeyup
mais certains éléments comme les Input, ... et je pensais aussi les liens !? ...

Re: javascript Chrome onkeyup

Publié : 17 juil. 2010, 14:18
par ornitho13
j'ai fait des tests et j'ai réussi à faire fonctionner le onkeyup sur une div sous chrome

Le onkeyup ne fonctionne pas car il faut obtenir le focus de la div et plus précisement sur un des liens présents dans la div (ex:lien1)

j'ai donc fait la modif suivante:

Code : Tout sélectionner

...
<head> 
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
	<title>Test Google Chrome onkeyup sur un div</title> 
	<script type="text/javascript">
		function keyUpFunction(){
			alert('keyup');
		}
		function test(){
			document.getElementById("lien1").focus();

			if(window.addEventListener){ // pour FF, chrome, safari, opera
				document.getElementById("divtestkey").addEventListener('keyup', keyUpFunction,false);
				document.getElementById("divtestkey").addEventListener('click', function(){
					document.getElementById("lien1").focus(); // pour obliger le focus sur la div quand on clique dessus
				}, false);
			}else{// pour IE
				document.getElementById("divtestkey").attachEvent('onkeyup', keyUpFunction,false);
				document.getElementById("divtestkey").attachEvent('onclick', function(){
					document.getElementById("lien1").focus(); // pour obliger le focus sur la div quand on clique dessus
				});
			}
		}
	</script>
</head> 
<body onload="test();">
	<p>
		cliquer sur un lien et ce lien ayant le focus enfoncer une touche<br /> 
		avec Google Chrome  le onkeyup  ne fonctionne pas<br /> 
		avec Firefox, IE 7 et Opera ... nickel !<br /><br /> 
 	</p>
	<div id="divtestkey" style="border:solid 1px green;"> 
		<a id="lien1" href="#">un lien</a><br /> 
		<a id="lien2" href="#">un lien</a><br /> 
		<a id="lien3" href="#">un lien</a><br /> 
		<a id="lien4" href="#">un lien</a><br /> 
	</div>
 
</body> 
...
sur le chargement de la page, je place le focus sur le premier lien et ainsi je peux récupérer le "onkeyup".

Je te l'accorde c"est un peu bizarre mais je n'ai pas trouvé d'autre solution pour l'instant :). Le code fonctionne sur tous les navigateurs

voici une page pour le test si tu veux : http://debray.jerome.free.fr/test.html

Re: javascript Chrome onkeyup

Publié : 17 juil. 2010, 15:29
par lpgc
... Merci çà fonctionne bien :D

l'astuce était de remettre le focus avant le onkeyup ... fallait y penser !

comme si le fait de cliquer sur un lien avec Chrome lui faisait perdre son focus ... bizarre :roll: