Supprimer la boite de Recherche rapide de la navigation
Hello :)
Bien qu'étant pratique, on veut parfois enlever la petite boite de recherche qui s'ouvre quand on clique sur "Rechercher", et ainsi arriver directement à la page de Recherche avancée ^-^
Exemple
Il s'agit de retirer cette petite box au clic sur "Rechercher" :
Comment ça marche ?
On va d'abord regarder comment Forumactif fait notre lien "Rechercher" actuel.
J'ai récupéré le code grâce à l'inspecteur d'élément. Je vous conseille de jeter un coup d'oeil au tuto sur les Outils de débug par valtena_ethan.
Le HTML ressemble à ça :
- Code:
<a class="mainmenu" href="/search" onclick="showhide(document.getElementById('search_menu')); return false;">
<img id="i_icon_mini_search" src="URL-IMAGE" alt="Rechercher" title="Rechercher">Rechercher
</a>
La partie qui ouvre la boite de recherche rapide est celle ci :
- Code:
onclick="showhide(document.getElementById('search_menu')); return false;"
Notre lien a un attribut "onclick" avec une valeur qui lui dit de montrer / masquer la boite de recherche.
Du coup, si vous avez bien suivi, il suffit d'enlever cet attribut onclick, et voilà, soucis réglé !
Code
PA > Modules > HTML & JAVASCRIPT > Gestion des codes Javascript.
Il faut vérifier que "Activer la gestion des codes Javascript" a bien "Oui" coché.
Ensuite, on va créer un nouveau JS, avec un nom clair, par exemple "Barre de navigation - enlever boite de recherche" et cocher "Sur toutes les pages" car on veut que cela fonctionne partout.
- Code:
/* NAVIGATION - ENLEVER LA BOX DE RECHERCHE RAPIDE */
$(function(){
$(".mainmenu[href='/search']").removeAttr("onclick");
});
Explications
KESS-KI-FÉ-CE-CODE ?
D'abord, on a ce petit bout de code qui dit au navigateur "Hey, pour ce qu'il y a dans ce bloc, attends que ma page soit prête pour que je la manipule"
- Code:
$(function(){
/* MON CODE QUI ATTEND ICI */
});
Ensuite on sélectionne les éléments avec la classe "mainmenu" avec le lien vers "/search" :
- Code:
$(".mainmenu[href='/search']")
Et on enlève l'attribut "onclick"
- Code:
.removeAttr("onclick");
Par simplicité, j'utilise jQuery, mais on pourrait le faire tout aussi simplement en js "simple". Vous pouvez lire le tuto de Yui à ce sujet : ForumActif, JavaScript et jQuery : les bases générales
En cas de soucis, je vous invite à aller poster dans "Problème avec mon code"
Dernière édition par Nihil Scar Winspeare le Sam 25 Mar 2017 - 20:45, édité 1 fois