[résolu] javascript Chrome onkeyup

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

[résolu] javascript Chrome onkeyup

Message 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 ...
Dernière modification par lpgc le 17 juil. 2010, 15:30, modifié 1 fois.
ornitho13
Arias
Messages : 10
Inscription : 13 juil. 2010, 14:45

Re: javascript Chrome onkeyup

Message 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
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Re: javascript Chrome onkeyup

Message 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
ornitho13
Arias
Messages : 10
Inscription : 13 juil. 2010, 14:45

Re: javascript Chrome onkeyup

Message 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
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Re: javascript Chrome onkeyup

Message 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é ...
ornitho13
Arias
Messages : 10
Inscription : 13 juil. 2010, 14:45

Re: javascript Chrome onkeyup

Message par ornitho13 »

si tu pouvais montrer un peu de code, je verrais peut etre mieux le probleme.

merci
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Re: javascript Chrome onkeyup

Message 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 !? ...
ornitho13
Arias
Messages : 10
Inscription : 13 juil. 2010, 14:45

Re: javascript Chrome onkeyup

Message 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
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Re: javascript Chrome onkeyup

Message 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:
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités