11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

En utilisant un seul champ <input>, je cherche à diriger un utilisateur vers un moteur de recherche en fonction d'un pre-mot-cle qui serait inséré devant la requête.

Exemple :

goo ma_recherche : conduira l'utilisateur vers http://www.google.com/search?q=ma_recherche

ya ma_recherche : conduira l'utilisateur vers http://search.yahoo.com/search?p=ma_recherche

ask ma_recherche : conduira l'utilisateur vers http://www.ask.com/web?q=ma_recherche

Je ne vois pas comment y arriver. Est-ce possible? Est-ce compliqué?

Bon, voilà ce que j'arrive à faire :
Pas la peine de rigoler, j'imagine que la majorité des gens sur ce forum vont rire du code suivant par rapport à ce que je tente de réaliser... Je débute et je veux apprendre ! Smiley biggrin


function direction(){

var phrase = document.formulaire.champ.value;
var google = "goo" + ' ' + "s";
var yahoo = "ya" + ' ' + "s";
var ask = "ask" + ' ' + "s";

switch(phrase)
{
   case google: 
		window.open ("http://www.google.com/search?q=" + phrase, "main", "location=yes,scrollbars=yes,resizable=yes");
      break;
   case yahoo:
   	window.open ("http://search.yahoo.com/search?p=" + phrase, "main", "location=yes,scrollbars=yes,resizable=yes");
      break;
         case ask:
   	window.open ("http://www.ask.com/web?q=" + phrase, "main", "location=yes,scrollbars=yes,resizable=yes");
      break; 
}
}


<form  name="formulaire" onsubmit="direction();return false;"> 
<input  type="text"  id="champ" />
</form>



Donc je n'arrive qu'à renvoyer l'utilisateur sur tel ou tel moteur qu'en fonction du bon mot-cle. Et encore... la recherche porte sur goo ma_recherche et non ma_recherche sans le pre-mot-cle.

Une idée? Smiley decu
Modifié par Foson (14 Dec 2007 - 20:37)
Salut

Le méta-moteur Ariane6 consulte lui tous les moteurs en même temps et ce n'est pas ce que je souhaite (en plus, il n'a pas l'air de très bien fonctionner).

Ce que je recherche, c'est une fonction javascript qui comprenne que:

si je tape dans le champ input : goo ma_recherche,
onsubmit m'envoie sur la page http://www.google.com/search?q=ma_recherche
Modifié par Foson (17 Dec 2007 - 02:08)
moi je rigole pas. il est loin le temps ou je serais tout sur tout.

ceci dit j'essaie de comprendre ce que tu voulais faire ( dans le code , j'ai bien compris ton souhait )

"goo" + ' ' + "s"; => pourquoi le +' '+"s"?

est ce un truc comme un %s qui est censé contenir le ma recherche comme d'un printf ou dans une commande bash?

auquel cas je ne crois pas que ça marche comme ça en javascript. (quoi que en javascript j'ai bien des choses a apprendre)

si tu le faisais en php au lieu de javascript moi j'"explode"-rais le champs champ en fonction d'un espace.

en javascript la fonction split est je crois l'equivalent du explode php.

une fois le split fais sur ta variable phrase tu auras le moyen de traiter indepandemment le goo du ma recherche
Modifié par CPascal (22 Dec 2007 - 12:47)
Merci de ta réponse.

a écrit :
est ce un truc comme un %s

Exactement. En fait je connais cette fonction du navigateur Opera qui utilise cette méthode dans la barre d'adresse. Explication. J'essaie d'appliquer cette méthode sur un champ input.

Je n'y connais rien en PHP. Ce que tu me proposes est peut-être la solution Smiley confus ...

En javascript, j'ai vu qu'il y avait l'objet RegExp. Mais je dois encore lire et me renseigner pour le comprendre.

Il s'agirait donc de construire une fonction qui reconnaisse, dans le champs de saisie, la chaîne "goo %s" ou la chaîne "ya %s" ou la chaîne "ask %s", ... Une fois reconnue, elle enverrait le %s en fonction du pre-mot-cle.

Ce que j'ai pu trouver : utiliser ces chaînes:
-"^goo" : chaîne qui commence par "goo"
-"(goo) .*" : chaîne qui commence par "goo" et se termine par n'importe quels caractères.

Une fois que l'expression correspond, la fonction s'exécute.

Mais je ne sais pas encore comment utiliser tout ça! Smiley sweatdrop Je dois encore lire et m'informer. Smiley smile
Modifié par Foson (22 Dec 2007 - 16:25)