En écrivant un article sur éléments de menu sans lien réel , je suis tombé sur un comportement étrange dans Joomla 3.3.3:
Je tenais à souligner qu’un tag <a>
Faisant référence à "#"
Pouvait faire défiler la page vers le haut lorsque l’utilisateur cliquait dessus, et qu’il serait peut-être préférable d’utiliser javascript:void();
dans le champ de lien pour l'élément de menu External URL
. ( Cet article explique pourquoi.)
J'avais l'habitude de le faire moi-même, mais maintenant, j'ai découvert que dans Joomla 3.3.3, l'enregistrement est refusé si le champ de lien contient javascript:void();
. Regardez cette capture d'écran (avant et après avoir cliqué sur le bouton "Enregistrer"):
Je viens de le tester sur une version plus ancienne de Joomla (3.0.3), et je pouvais toujours utiliser javascript:void();
dans le champ du lien.
S'agit-il d'un bogue dans les versions plus récentes de Joomla, ou at-il été décidé que la liaison au javascript n'était plus autorisée, quelque part entre J3.0.3 et J.3.3.3?
C’était en fait un bogue qui fonctionnait (ou plus précisément un problème de sécurité). Le comportement actuel est correct.
Les références:
Le type d'élément de menu de l'URL externe ne peut pas être enregistré avec javascript: void ()
Comment laisser un élément de menu exécuter Javascript dans Joomla 3.2?
En complément de la réponse de Valentin, voici comment ajouter du code javascript à un élément de menu:
#
dans le champ de lienExemple:
jQuery(document).ready(function($){
$(".menuitemclass").click(function () {
//your javascript function;
});
});