Presser une touche renvoie sur une autre page

mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010 - 3 oct. 2009 à 17:08
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010 - 10 oct. 2009 à 00:01
Bonjour.

Je suis perdu, j'ai essayé en vain pendant plusieurs heures, alors je demande un peu d'aide :
Je voudrais un code JavaScript très simple pour renvoyer sur une page A avec la touche flèche gauche, et sur une page B à l'aide de la touche flèche droite.
Ce doit être simple mais je n'y arrive pas, mes connaissances en Javascript sont trop limitées.

Merci d'avance pour aide !

11 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
4 oct. 2009 à 10:34
Bonjour,
plusieurs heures ?
bah, je pense que tout codeur a
parfois passé des semaines, voire
des mois ou plus sur un sujet épineux !
>>Ce doit être simple mais je n'y arrive pas,
et vous ne parvenez pas à quoi ?
charger une nouvelle page ? une possibilité ( selfHTML )

tester une touche ?
ch'tiot exemple à adapter :

clavier : <textarea id="tch" rows="8" cols="32"></textarea>
n° :
fromCharCode :
<script type="text/javascript">
document.getElementById("tch").onkeyup = function(event)
{ var tch=(window.event)?window.event.keyCode:event.which;
document.getElementById("notch").value=tch;
document.getElementById("frm").value=String.fromCharCode(tch);
}
</script>


Cordialement [mon Site] [M'écrire] Bul
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
4 oct. 2009 à 12:10
Merci, Bul3

A première vue, je n'y comprends rien...
Ca m'a l'air très compliqué et pas vraiment en rapport avec mon problème
mais je vais essayer de m'y coller.
Moi, je m'étais polarisé sur "onKeyPress"

Mais merci de vous être intéressé à mon problème.
Bonne journée !
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
4 oct. 2009 à 12:47
J'ai peut-être mal présenté mon problème.
Je veux que le visiteur de ma page s'il presse la touche flèche gauche, ça le renvoie à une autre page, et idem avec la flèche droite.
Voici la partie de mon code concernée pour la touche flèche gauche (code 37):

--------------------------------------------
<script language="JavaScript">
<!--
function MM_goToURL() { //v3.0
if (document.onKeypress == 37) {

var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
}
//-->
</script>
</head>

<body onKeyPress="MM_goToURL('self','../articles-e/artprov-e.htm');return document.MM_returnValue" BGCOLOR= etc...
--------------------------------------------
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
4 oct. 2009 à 13:15
>>Ca m'a l'air très compliqué
pour assurer la compatibilité tous navigateurs
et 4 lignes... c'est compliqué ?
>>et pas vraiment en rapport avec mon problème
euh ? ah bon ?
c'est un exemple qui permet de voir
comment on peut tester les touches
sur lesquelles on appuie

>>Moi, je m'étais polarisé sur "onKeyPress"
onkeyup guère différent au fond,
sauf le moment où cela se produit
et onkeypress n'est paut-être pas tout
à fait adapté dans ce cas.

>>Je veux que le visiteur de ma page s'il presse
>>la touche flèche gauche, ça le renvoie à une
>>autre page, et idem avec la flèche droite.
j'avais bien compris...
je vous ai montré comment tester une touche
et comment charger une page

par contre,cela :
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
effectivement, je n'y comprend rien ????
une boucle ? pourquoi faire ?
un eval ? quelle horreur ? et ça sert à quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
4 oct. 2009 à 13:21
ah si... j'ai compris cela :
if (document.onKeypress == 37)
????
c'est un évènement onkeypress,
déclenché lors de l'appui sur un touche
et non pas la valeur de la touche pressée
ça doit à priori d'ailleurs donner un erreur
de syntaxe, non ?
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
4 oct. 2009 à 13:54
Encore merci Bul3,

La boucle, je ne sais pas, c'est un bout de code que j'avais copié
et qui marchait très bien tant que je détectais simplement n'importe quelle touche.
Eval une horreur ? sans doute, je suis absolument nul en programmation Javascript dont je n'ai pas les bases.
Je ne veux pas faire de l'éthique, simplement que mon code fonctionne.

Alors si vous pouviez simplement corriger mes fautes, je vous en serais très reconnaissant.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
4 oct. 2009 à 14:23
>>si vous pouviez simplement corriger mes fautes
pas si simple !!!!

j'ai
_ signalé ce qu'on pouvait voir
( test évènement et pas touche actionnée .... )
_ donné des indications pour faire
( comment tester les touches et comment
charger une page )
je ne parle pas d'éthique ! je ne sais même
pas ce que ça veut dire en programmation !!!
et franchement, l'étique : rien à cirer

n'ayant pas toutes les billes, voyant
des choses pour le moins curieuses dans
le peu que vous nous montrez... je ne pourrais
guère aller plus loin que répéter ce que
j'ai dit.
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
4 oct. 2009 à 14:42
Toujours merci, Bul3 !

Ne prenez pas la mouche, c'est vous qui avez écrit "Quelle horreur". C'est de l'éthique, ça !
J'ai montré le bout de code que j'avais écrit, ou plutôt mal bricolé, je crois qu'il n'y a que ce bout
qui concerne mon problème.

Maintenant, si vous me dites "( test évènement et pas touche actionnée .... )", ça ne m'aide pas beaucoup...
puisque je n'y connais rien.

Moi, je suis un artiste et pas un programmeur. Jusqu'à présent mon site fonctionne bien, parce que j'avais fait un
système qui en pressant une touche (n'importe laquelle) faisait passer à la page suivante, et un clic dans la page
faisait reculer d'une page. Le problème est que le clic dans la page ne fonctionne qu'au dessus de la dernière ligne
et pas en-dessous. Je voulais donc perfectionner avec les touches flèches. Si je n'y arrive pas,
je ferai des gadgets, ça, je sais le faire.

Tant pis, laissez tomber, vous êtes déjà bien gentil de vous intéresser à moi.
Bon après-midi !
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
5 oct. 2009 à 12:11
Bon, j'ai résolu mon problème et je l'affiche ici au cas où ce serait utile à quelqu'un :

<script language="JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
function getKeyevent(e){
var keynum;
var ctrlKey;
var eventObj;
ctrlKey = false;

if(window.event) // IE
{
keynum = e.keyCode;
ctrlKey = e.ctrlKey;
EventObj = e.srcElement;

}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
ctrlKey = e.ctrlKey;
EventObj = e.target;

}
//alert(EventObj);


if ((EventObj.nodeName !'INPUT') && (keynum 39)){
MM_goToURL('self','../articles-e/artprov-e.htm')
}
else if ((EventObj.nodeName !'INPUT') && (keynum 37)){
history.back();
}
}

//-->
</script>
</head>

<body onkeydown="return getKeyevent(event);" etc...
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
9 oct. 2009 à 17:09
Bonjour, d'un point de vue simplicité, je pense qu'il est peut être envisageable de faire encore plus simple non ?
J'ai eu à faire cela, pour la gestion d'un album photo (flèche gauche -> image précedente et flèche droite->image suivante.
J'en suis arrivé à ce bout de code, dont la simplicité est beaucoup plus fine ???

		document.onkeydown= function (e){
// récupère la touche pressée
var key=(document.all) ? event.keyCode : e.keyCode;
// récupère le contrôle (evite les inputs...)
var ctrl =(document.all)? event.srcElement : e.target;
// déplacment à gauche
if ( ctrl.tagName == "HTML"){
if ( key == 37 ){
window.location ="jkfdjvfj.html";
return false;
}
// déplacment à droite
if ( key == 39){
window.location ="jkfdjvfj2.html";
return false;
}
}
}


C'est un peut plus simple non ?

[o-_-o]
0
mageetlent Messages postés 13 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 24 novembre 2010
10 oct. 2009 à 00:01
Hello, Zobibol,

Quel pseu d'eau plein de 5 bols....

Oui, certainement. Moi j'ai bricolé ça à partir d'un exemple que j'ai trouvé.
Maintenant ça marche, donc je ne vais pas le changer.

Est-ce que ton code marche avec les frames (tag _self, par exemple), et sur tous les navigateurs ?
Ce que j'ai fait marche bien, sauf paraît-il sur Safari où il faudrait recliquer dans la page
avant de presser la touche, ce qui est embêtant, mais n'ayant pas testé moi-même,
je ne suis pas sûr que ça ne marche pas, c'est une néophyte qui a essayé pour moi....

Enfin, merci pour le code !!!!


Mage et Lent, un des trois
0
Rejoignez-nous