IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Plugin javascript natif


Sujet :

JavaScript

  1. #1
    Membre chevronn�
    Avatar de Darkaurora
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par d�faut Plugin javascript natif
    Bonjour (ou m�me Bonsoir),

    Une question certainement idiote mais je n'arrive pas � trouver de r�ponse. J'ai appris � cr�er succinctement des plugins jQuery cependant je cherche � cr�er la m�me chose mais en pure JavaScript.

    Je suis certains de la possibilit� de la chose puisque jQuery est du JS seulement certaines (ou beaucoup) de notions doivent m'�chapper car je n'arrive pas � trouver de bonne piste pour y arriver.

    Pourriez vous m'orienter svp ?

    D'avance merci.

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    C'est quoi un plugin javascript ???

    JQuery utilise de fa�on abusive de ce terme pour d�signer une librairie accompagn�e �ventuellement de css et de ressources (images sons ...)

    Si c'est �a un plugin alors ceci est un plugin javascript
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    function test() {return true;}
    A+JYT

  3. #3
    Membre chevronn�
    Avatar de Darkaurora
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par d�faut
    Je d�clare un plug comme une classe, la diff�rence se fera lors de l'appel et de l�initialisation.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    "use strict";
    var MaClasse = function ( elt, opt ) {
    	//Attributs...
    }
    MaClasse.prototype = {
    	constructor: MaClasse,
    	//Méthodes...
    }
    /*-- Définition du plugin --*/
    var old = $.fn.maclasse
    $.fn.maclasse = function ( opt ) {
    	return this.each( function ( ) { 
    		var $this 	= $( this ),
    			data	= $this.data( 'maclasse' ),
    			options = typeof opt == 'object' && opt
    		if( !data )
    			$this.data( 'maclasse', ( data = new MaClasse( this, options ) ) )
    		if( typeof opt === 'string' )
    			data[option]( )
    	} )
    }
    $.fn.maclasse.defaults = {
    	//Attributs par défaut...
    }
    $.fn.maclasse.Constructor = MaClasse
    Ce qui permet d'appeler le plug de cette mani�re ci:

    $('#mon_id").maclasse(JSON_Object_parameter);la fronti�re est mince mais pas moyen d'arriver au m�me r�sultat en JS pure soit

    var element = document.getElementById('mon_id'); element.maclasse(JSON_Object_parameter);

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Je ne suis pas sur de comprende ce que tu veux faire

    il te faut comprendre ce que fais JQuery pour comprendre la syntaxe de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $('#mon_id').maclasse(JSON_Object_parameter);
    $('#mon_id') ne retourne pas l'�l�ment du DOM don l'id est mon_id ce n'est pas du tout �quivalent � document.getElementById('mon_id').

    la fonction $() de JQuery retourne un objet javascript qui contient un tableau de r�f�rence � d'autres objets dans le cas de ton appel ce tableau contient une r�f�rence � l'�l�ment retourn� par document.getElementById('mon_id').

    Donc lorsque tu fais $('#mon_id').maclasse(JSON_Object_parameter);tu appelle la m�thode maclasse (trompeur pour le nom d'une m�thode)
    sur l'objet javascript renvoy� par $('#mon_id').

    l'appel �quivalent en JS est beaucoup plus simple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    data = new MaClasse( document.getElementById('mon_id', JSON_Object_parameter);
    A+JYT

  5. #5
    Membre chevronn�
    Avatar de Darkaurora
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2010
    Messages
    382
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 382
    Billets dans le blog
    1
    Par d�faut
    d'accord merci de ton aide, je vais me pencher sur ce que tu m'as �crit puis testerais et je pense marquer comme r�solus ce sujet.

    Encore merci.

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    plugin vient de "plug in", c'est-�-dire "se brancher sur". Un plugin jQuery se branche sur jQuery, logique, mais un "plugin JavaScript", �a ne veut rien dire. Mieux vaut parler de biblioth�que ou, dans ton cas, d'extension d'objets natifs.

    Dans le code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var element = document.getElementById('mon_id'); element.maclasse(JSON_Object_parameter);


    La fonction maclasse doit �tre d�clar�e dans l'objet Element, soit directement dans l'objet, soit dans son prototype (ce qui est probablement ce que tu souhaites). Seulement, modifier le prototype des HTMLElement est jug� pour diverses raisons comme une mauvaise pratique, principalement parce que ce prototype est la propri�t� du navigateur et on ne sait pas trop ce qu'il y a dedans selon les milliers de diff�rentes versions de diff�rents navigateurs existants. Un article qui donne plus de d�tails : http://perfectionkills.com/whats-wro...nding-the-dom/

Discussions similaires

  1. [Dojo] Plugin Javascript sous Eclipse
    Par Rony Rauzduel dans le forum Biblioth�ques & Frameworks
    R�ponses: 3
    Dernier message: 07/09/2011, 11h26
  2. [MAVEN2] Installation plugin non natif
    Par cedseat dans le forum Maven
    R�ponses: 16
    Dernier message: 29/07/2008, 17h40
  3. Plugin JavaScript pour Zend Studio
    Par maximenet dans le forum Zend Studio
    R�ponses: 1
    Dernier message: 18/05/2007, 21h20
  4. R�ponses: 2
    Dernier message: 10/02/2007, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo