Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement web
  4. Javascript
  5. Override une fonction

Override une fonction

Planifié Épinglé Verrouillé Déplacé Javascript
3 Messages 2 Publieurs 2.3k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • EvaelisE Hors-ligne
    EvaelisE Hors-ligne
    Evaelis
    a écrit sur dernière édition par
    #1

    Override une fonction
    Dans un de mes récents projets j'ai eu besoin d'override la fonction Alert en javascript afin qu'elle affiche une popup stylisé, en accord avec le thème de mon site et qui ne peux pas être bloquée nativement.
    L'idée peut paraitre facile mais je n'avais pas imaginé que l'on pouvait modifier une fonction membre de window donc voilà mon code fonctionnant avec un modal bootstrap (Pour ce qui ne connaissent pas bootstrap http://getbootstrap.com/javascript/). Bien que je ne connaissais pas la technique dans ce cas précis, je la classe tout de même comme base à avoir)

        window.alert = function(message){
            $("#fast_alert_js").find("p").html(message);
            $(".modal").modal('show');
        }
    

    L'argument message est celui de base de la fonction mais vous pouvez très bien rajouter des arguments.
    Le but ici est donc d'afficher le message dans une balise de paragraphe. Bootstrap se charge du reste.

    8QhGe.png

    Le rendu obtenu est ainsi bien mieux que celui de départ. Il vous permettras d'éviter de recréer une fonction pour une même utilité.
     
    A noter que ce "tutoriel" ou plutôt code source utilise JQuery pour fonctionner
    En passant : Si vous souhaitez utiliser ce même exemple appliqué à JQuery :

    (function() {
    var originMethod= jQuery.fn.setArray; //Sauvegarde de la fonction de base
    jQuery.fn.setArray = function() { // Début de l'override
    console.log( this, arguments ); // Log
    return originMethod.apply( this, arguments ); // Exécution de la méthode originale
    };
    })();
    

    Code provenant de la documentation officielle. Il est basé sur la même base que le premier exemple.
    Au lieu de simplement exécuter la fonction, il va simplement log l'événement avant d’exécuter normalement celle-ci.

    Evaelis

    1382891929-get-beared.png

    1 réponse Dernière réponse
    3
    • AzadA Hors-ligne
      AzadA Hors-ligne
      Azad
      a écrit sur dernière édition par
      #2

      Merci du partage.
      Etrangement, j'ai jamais utilisé le JS de Bootstrap, je fais souvent from scratch. J'y penserais. 🙂

      +1 rep.

      Administrateur du forum.

      Contactez-moi par message privé ou par mail.

      1 réponse Dernière réponse
      0
      • EvaelisE Hors-ligne
        EvaelisE Hors-ligne
        Evaelis
        a écrit sur dernière édition par
        #3

        A vrai dire, depuis que j'ai découvert les applications de bootstrap couplé à jquery, j'utilise plus que ça.

        1382891929-get-beared.png

        1 réponse Dernière réponse
        0

        Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

        Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

        Grâce à votre participation, ce message peut devenir encore meilleur 💗

        S'inscrire Se connecter
        Répondre
        • Répondre à l'aide d'un nouveau sujet
        Se connecter pour répondre
        • Du plus ancien au plus récent
        • Du plus récent au plus ancien
        • Les plus votés


        • Se connecter

        • Connectez-vous ou inscrivez-vous pour faire une recherche.
        Powered by NodeBB Contributors
        • Premier message
          Dernier message
        0
        • Catégories
        • Récent
        • Mots-clés
        • Populaire
        • Web
        • Utilisateurs
        • Groupes