Trucsweb.com

Javascript

Moteur de recherche pour votre site

RDFFav

Recherche sur un choix de moteurs distants - Avec option de recherche locale via « Google »

9 décembre 2003

  • · Niveau : DÉBUTANT
  • · Compatibilité : Tous les navigateurs

Savez-vous que vous pouvez indiquer à « Google » de limiter sa recherche sur un domaine particulier? C’est non seulement une solution simple et économique, mais aussi très performante. Le script proposé ici permet le choix de plusieurs moteurs de recherche via un bouton radio.

Pour régler le cas de « Google », que certains sites professionnels utilisent avec succès, sachez qu’il suffit d’ajouter à la requête le mot « site: » suivit de votre domaine : « site:trucsweb.com ».

Exemple : http://www.google.com/search?q=Flash+site:www.trucsweb.com

 

Création du formulaire
Le formulaire peut avoir ou non une action par défaut, mais, avec une action par défaut, la méthode devient importante. Capturer l’envoie du formulaire (l’événement « onsubmit ») afin d’acheminer la requête et le choix du moteur à la fonction Javascript « twMultiRech». Noter l’importante présence du « return » qui permet par la suite d’anuler ou non l’envoie du formulaire à l’action par défaut.

<form name="maRecherche" onSubmit="return twMultiRech(this.q.value,this.moteurs);">

  • Le formulaire demande au moins un champ texte, « Google » identifie la chaîne de recherche par "q" alors pourquoi pas?.
  • Les « boutons radio » pour sélectionner la recherche, autant de bouton que de moteurs de recherche. En autant qu’ils aient tous le même nom, pourquoi pas "moteurs" (avec un "s" car c’est un tableau (array) avec plusieurs boutons!).
  • Et enfin le bouton d’envoie, un type « submit » tout simplement.

En d’autres mots :

<form name="maRecherche" onSubmit="return twMultiRech(this.q.value,this.moteurs);">
<input type="text" name="q" size="15" maxlength="255" value="" />
<input type="radio" name="moteurs" value="1" checked>Moteur #1
<input type="radio" name="moteurs" value="2">Moteur #2
<input type="radio" name="moteurs" value="3">Moteur #3
<input type="submit" name="Submit" value="Recherche">
</form>

On peut voir dans l’exemple 3 moteurs différent (et un 4ième possible avec une action par défaut).

<form name="maRecherche" action="recherche.asp" method="post" onSubmit="return twMultiRech(this.q.value,this.moteurs);">
<input type="text" name="q" size="15" maxlength="255" value="" />
<input type="radio" name="moteurs" value="1" checked>Moteur #1
<input type="radio" name="moteurs" value="2">Moteur #2
<input type="radio" name="moteurs" value="3">Moteur #3
<input type="submit" name="Submit" value="Recherche">
</form>

 

La fonction « twMultiRech »
C’est donc la fonction qui fait tout le travail, soit d’identifier le moteur et construire la requête correspondante sur la bonne adresse. On teste donc en premier lieu la valeur de notre bouton radio « moteurs » qui va ainsi :

function twMultiRech(_chaine,_type) {
  if (_type[1].checked) {
    // Le moteur #1
  }
  if (_type[2].checked) {
    // Le moteur #2
  }
  if (_type[3].checked) {
    // Le moteur #3
  }
}

Exemple de recherche locale avec « Google » sur la même page. Changer le url du document avec la chaine de recherche, j’ai ajouter la recherche locale sur le domaine des Trucsweb.com.

location.href = ("http://www.google.com/search?lr=lang_fr&cr=&q="+ _chaine + ’+site:www.trucsweb.com’);

Exemple sur une nouvelle page avec Window.open. Le même principe mais en forcant une nouvelle page.

var sUrl = "http://www.google.com/search?lr=lang_fr&cr=&q="+ _chaine + ’+site:www.trucsweb.com’);
window.open(sUrl,’Google’,’toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes’);

Le « return »
Il ne faut surtout pas oublier d’annuler l’événement du « submit » sinon l’action par défaut sera automatiquement provoquée. Pour ce faire le mot « return » a été ajouté avant l’appel de la fonction. Ce mot attend tout simplement que la fonction lui retourne "vrais" ou "faux" (true/false).

// Retourner "faux" (false) pour annuler l’action par défaut ou plutôt le comportement « submit »
return false;

 

Exemple suivit du code complet :


Moteur par défaut
Moteur #1 Google locale
Moteur #2 Google locale nouvelle page
Moteur #3 Google nouvelle page

 

function twMultiRech(_chaine,_type) {
  if (_type[2].checked) {
    // Le moteur #2 - Google locale nouvelle page
    var sUrl = ’http://www.google.com/search?lr=lang_fr&cr=&q=’+ _chaine + ’+site:www.trucsweb.com’;
    window.open(sUrl,’Google’,’toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes’);
    return false;
  }
}

Exemple complet :

<html><head>
<title>Trucsweb - Recherche sur un choix de moteurs distants</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" language="javascript">
function twMultiRech(_chaine,_type) {
  // Script gatuit des Trucsweb.com
  if (_type[0].checked) {
    // L’action par défaut
    // return false; mais il l’est par défaut!
  }
  if (_type[1].checked) {
    // Le moteur #1 - Google locale
    location.href = ’http://www.google.com/search?lr=lang_fr&cr=&q=’+ _chaine + ’+site:www.trucsweb.com’;
    return false;
  }
  if (_type[2].checked) {
    // Le moteur #2 - Google locale nouvelle page
    var sUrl = ’http://www.google.com/search?lr=lang_fr&cr=&q=’+ _chaine + ’+site:www.trucsweb.com’;
    window.open(sUrl,’Google’,’toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes’);
    return false;
  }
  if (_type[3].checked) {
    // Le moteur #3 - Google nouvelle page
    var sUrl = ’http://www.google.com/search?lr=lang_fr&cr=&q=’+ _chaine;
    window.open(sUrl,’Google’,’toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes’);
    return false;
  }
}
</script>
</head>

<body bgcolor="#FFFFFF"><h3>Recherche sur un choix de moteurs distants</h3>
<form name="maRech" action="http://www.trucsweb.com/Recherche/default.asp" method="post" onSubmit="return twMultiRech(this.rech.value,this.moteurs);">
<input type="text" name="rech" size="15" maxlength="255" value="" /><input type="submit" name="Submit" value="Recherche">
<br /><input type="radio" name="moteurs" value="0" checked="checked"> Moteur par défaut<br /
><input type="radio" name="moteurs" value="1"> Moteur #1 Google locale<br />
<input type="radio" name="moteurs" value="2"> Moteur #2 Google locale nouvelle page<br />
<input type="radio" name="moteurs" value="3"> Moteur #3 Google nouvelle page
</form>
</body>
</html>

Django (Oznog) Blais, Trucsweb
Dernière mise à jour : 2014-10-02
Partager cette page
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Liens hypertextes

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté.

les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@