Bouton rechercher dans un nouvel onglet

Signaler
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
18 février 2020
-
serenodo
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
18 février 2020
-
Bonjour,
J'ai téléchargé un script de moteur de recherche. Il y a longtemp sur ce super site.
Je suis nul en informatique.
Le script fonctionne à merveille.
Mais j'aimerai que la recherche s'affiche dans un autre onglet pour ne pas perdre la page d'accueil avec le bouton recherche.
Et aussi les documents PDF qui s'affichent à la recherche.
En fait j'aimerai que tout s'ouvre dans un autre onglet.
Merci beaucoup.
Je vous joint les scripts.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
    <title>Support SSPG</title>
     <link href="code.css" type="text/css" rel="stylesheet" />

    <script src="R:\DITX-EC\SVPBURO_SCC\Ged_Scc\data.js"></script>
    <script type = 'text/javascript'>
<!--
/* FUNCTION INCLUDE */



 function afficher()
 {
  document.writeln( '<h3><a href=' + this.url + '>' + this.titre
  + '</a></h3><p class=noindent>' + this.keyword + '<br><a href=' + this.url + '>' + this.url + '</a></p>\n' );
 }

 function Stock( titre_in,keyword_in,url_in )
 {
  this.titre  = titre_in;
  this.keyword = keyword_in;
  this.url  = url_in;
  this.afficher = afficher;
 }

 

/* Cette fonction réécrit entièrement la page web pour y afficher les résultats */
 function rechercher( chaine )
 {
  
  var trouved = 0;
  chaine = chaine.toUpperCase();
  var data = new Array();
  store( data );

  document.writeln( "<html><head><title>Résultats de la recherche</title><link href='code.css' rel='stylesheet' type='text/css'></head>" );
  document.writeln( "<body class='article'><div class='alone'>" );
  document.writeln( "<h1>Résultats de la recherche >>>>  "+chaine+"</h1>" );

  for( var i=0; i<data.length ; i++ )
  {
   if(( data[i].titre.toUpperCase().indexOf( chaine ) != -1 )
   || ( data[i].keyword.toUpperCase().indexOf( chaine ) != -1 )
   || ( data[i].url.toUpperCase().indexOf( chaine ) != -1 ))
   {
    data[i].afficher();
    trouved ++;
   }
  }

  if( !trouved )
  {
   document.writeln( "<p style='color: red; font-weight: bold;'>Aucune réponse n'a été trouvée pour ce mot clé dans la GED SSPG. </br></br>Si besoin d'une procédure MERCI de m' envoyer une demande par <a href='R:/\DITX-EC/\SVPBURO_SCC/\Ged_Scc/\Msg/\Demande_de_creation de_procedure_OU_tips .oft'> <b>mail </b></a>avec les bonnes infos</p>");
  }

  document.writeln( "<p style='color: blue; font-weight: bold;'>"+trouved+" réponse(s) trouvée(s) pour le mot-clé "+chaine);
  document.writeln( "</p><hr><form><input type='button' value='Nouvelle recherche ?' OnClick='window.location=\"moteurRecherche1.html\"'></form></div>" );
  document.writeln( "</body></html>" );
  document.close();
 }

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

<body>


<form name="rech" OnSubmit="rechercher( document.rech.champ.value );">
<input type="text" name="champ"    size="20"><BR>
<input type="submit" name="valide" value="Rechercher">
</form>


<noscript><p>
Votre navigateur ne reconnaît pas le JavaScript, le script de recherche ne pourra pas marcher.
</p></noscript>

</div>
</body>
</html>

CODE JS
function store (data)
{
  data[0 ] = new Stock("GUIDE ATHENA", "message d'erreur imputation","Doc/Message_erreur_imputation.docx" );
  data[1 ] = new Stock("GUIDE ATHENA","Changer_numero_imputation.","Doc/Changer_numero_imputation.txt" );
}

6 réponses

Messages postés
2078
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
18 février 2020
2
Bonjour,

Pourquoi ne pas afficher les résultats dans une div au lieux d'une nouvelle page ?

Pilotée par JS, l'ouverture d'une nouvelle page est souvent bloquée par les anti-popup des navigateurs voire les solutions anti-pub comme adblock.

Cordiakement,
Messages postés
1749
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
18 février 2020
53
bonjour

pour ouvrir un nouvelle onglet il faut utiliser l'attribut target="_blank" a ajouter a la chaine de caractère dans la fonction afficher
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
18 février 2020

Bonjour@karamel,
Je ne sais pas faire.
voici la fonction afficher
function afficher()
	{
		document.writeln( '<h3><a href=' + this.url + >' + this.titre
		+ '</a></h3><p class=noindent>' + this.keyword + '<br><a href=' + this.url + '>' + this.url + '</a></p>\n' );
	}


Merci
Messages postés
1749
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
18 février 2020
53
function afficher()
 {
  document.writeln( '<h3><a target="_blank" rel="noopener" href=' + this.url + >' + this.titre
  + '</a></h3><p class=noindent>' + this.keyword + '<br><a target="_blank" rel="noopener" href=' + this.url + '>' + this.url + '</a></p>\n' );
 } 


rien ne sert de courir il faut partir a point.
cours Forest cours !
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
18 février 2020

@karamel,
Merci pour ton aide, mais cela ne fonctionne pas pour la page des recherches, elles s'affichent dans la même page.
Par contre c'est ok pour les liens dans la page de recherche, les doc s'ouvrent bien dans une autre page.

@cs_PaTaTe
Les popup ne sont pas un problème, car ce site ne sera utilisé qu'en interne du service, et toujours avec le même navigateur.
Merci
cs_PaTaTe
Messages postés
2078
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
18 février 2020
2
@serenodo

C'est possible mais j'ai déjà vu des popups internes à un site être totalement bloqué avec certaines extensions donc à choisir, je prendrai la solution la plus "propre" ^^
Messages postés
9
Date d'inscription
dimanche 30 avril 2017
Statut
Membre
Dernière intervention
18 février 2020

@cs_PaTaTe ,
La solution la plus propre est le résultat de la recherche dans un nouvel onglet dans une div.
Ou
Une div qui s' affiche dans la même page.
Mais je ne sais pas le faire.
Merci.