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 :

javascript et interf�rence avec d'autres javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par d�faut javascript et interf�rence avec d'autres javascript
    Bonjour � tous,

    je me suis pench� sur un code en open source de chat communautaire qui se nomme AjaxIM, depuis hier j'ai r�ussi � modifier le javascript pour que la connexion soit automatique et qu'il s'adapte sans probl�me � mon programme

    mais je me heurte a un dernier probl�me en effet... lorsque je l'int�gre � ma page, il marche parfaitement mais me d�sactiv� tous les autres javascript du site, j'ai un menu d�roulant en javascript qu'il d�sactive, une galerie image en javascript, qu'il d�sactive aussi...

    pensez- vous que cela est un lien avec le z-index ( je viens de v�rifier ca n'en a pas l'air ! si jele modifie on obtiens le m�me probleme... ) , ou d'o� cela peut-il venir ?

    peut-etre un probl�me de focus() ? je ne connais pas du tout les interf�rence de javascript, si vous pouvez juste me mettre sur des pistes, je ferai les recherches :p

    j'ai remarquer en faisant des tests, que si j'enl�ve mon second javascript galerie image, il marche mieux, et si je le laisse, il me fait disparaitre carr�ment tout. il y a donc une sacr� interf�rence entre les deux syst�me...

    merci de votre avis, si vous avez des questions je suis dans les parages...

    Merci, et Bonne journ�e.

    B.

    je vous met en ligne le code qui se trouve etre la gallerie qui d�sactive mon autre partie, il d�sactive totalement l'AJAX qui sert au chat communautaire...

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    var ImageMenu = new Class({
     
    	getOptions: function(){
    		return {
    			onOpen: false,
    			onClose: Class.empty,
    			openWidth: 200,
    			transition: Fx.Transitions.quadOut,
    			duration: 400,
    			open: null,
    			border: 0
    		};
    	},
     
    	initialize: function(elements, options){
    		this.setOptions(this.getOptions(), options);
     
    		this.elements = $$(elements);
     
    		this.widths = {};
    		this.widths.closed = this.elements[0].getStyle('width').toInt();
    		this.widths.openSelected = this.options.openWidth;
    		this.widths.openOthers = Math.round(((this.widths.closed*this.elements.length) - (this.widths.openSelected+this.options.border)) / (this.elements.length-1))
     
     
    		this.fx = new Fx.Elements(this.elements, {wait: false, duration: this.options.duration, transition: this.options.transition});
     
    		this.elements.each(function(el,i){
    			el.addEvent('mouseenter', function(e){
    				new Event(e).stop();
    				this.reset(i);
     
    			}.bind(this));
     
    			el.addEvent('mouseleave', function(e){
    				new Event(e).stop();
    				this.reset(this.options.open);
     
    			}.bind(this));
     
    			var obj = this;
     
    			el.addEvent('click', function(e){
     
    				if(obj.options.onOpen){
    					new Event(e).stop();
    					if(obj.options.open == i){
    						obj.options.open = null;
    						obj.options.onClose(this.href, i);
    					}else{
    						obj.options.open = i;
    						obj.options.onOpen(this.href, i);
    					}
     
     
    				}
     
    			})
     
    		}.bind(this));
     
    		if(this.options.open){
    			if($type(this.options.open) == 'number'){
    				this.reset(this.options.open);
    			}else{
    				this.elements.each(function(el,i){
    					if(el.id == this.options.open){
    						this.reset(i);
    					}
    				},this);
    			}
    		}
     
    	},
     
    	reset: function(num){
    		if($type(num) == 'number'){
    			var width = this.widths.openOthers;
    			if(num+1 == this.elements.length){
    				width += this.options.border;
    			}
    		}else{
    			var width = this.widths.closed;
    		}
     
    		var obj = {};
    		this.elements.each(function(el,i){
    			var w = width;
    			if(i == this.elements.length-1){
    				w = width+5
    			}
    			obj[i] = {'width': w};
    		}.bind(this));
     
    		if($type(num) == 'number'){
    			obj[num] = {'width': this.widths.openSelected};
    		}
     
    		this.fx.start(obj);
    	}
     
    });
     
    ImageMenu.implement(new Options);
    ImageMenu.implement(new Events);

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Il est possible (mais seule la lecture de ton code pourrait le confirmer ^^) que le probl�me vienne des gestionnaires d'�v�nement.

    Quand ils sont appliqu�s "correctement" aux �l�ments, tout va bien. Malheureusement, l'habitude tr�s r�pandue de placer les gestionnaires en assignant directement des fonctions aux propri�t�s "�v�nements" des �l�ments (je veux parler des propri�t�s onclick, onmouseover, onchange, etc.) cause parfois l'�crasement des gestionnaires pr�c�demment appliqu�s quand plusieurs scripts (au d�part ind�pendants) sont appliqu�s � la m�me page.

    Exemple :

    1er script : scriptMaison.js
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    // ...
    window.onload = fonction() {
       // initialisations, traitements divers, etc.
    }
    // ...

    2eme script : ajaxIM.js
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    // ...
    window.onload = fonction() {
       // autres traitements
    }
    // ...
    Dans cet exemple, la fonction contenant les "autres traitements", pr�sents dans ajaxIM.js, vient �craser celle qui contenait les premiers traitements, ceux de scriptMaison.js... (si toutefois ils sont bien li�s depuis le head dans cet ordre : sinon c'est le contraire bien entendu : le premier �craserait le second)

    Si jamais c'�tait le cas, il est facile de r�parer la situation avec un peu d'addEventListener/attachEvent.

    Tiens-nous au jus ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par d�faut
    Merci pour la r�ponse je ne connais pas des masses javascript mais en effet � tous les coups cela parait logique que ce soit incompatibilit� "Event"

    donc l� je suis � la recherche de dispatchevent, car j'ai essayer de mettre addeventlistener � la place de addevent dans le code du dessus, et il n'y a pas de modification !

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par seif_scalp Voir le message
    Merci pour la r�ponse je ne connais pas des masses javascript mais en effet � tous les coups cela parait logique que ce soit incompatibilit� "Event"

    donc l� je suis � la recherche de dispatchevent, car j'ai essayer de mettre addeventlistener � la place de addevent dans le code du dessus, et il n'y a pas de modification !
    Oula attention quand m�me aux remplacements dans la masse, notamment si tu n'es pas s�r de tes connaissances javascript...

    >>> dispatchEvent ? Quel rapport ici ?

    Montre nous ton code si tu veux un avis plus pr�cis

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Salut,
    Vu que tu sembles aussi utiliser des biblioth�ques (au moins Prototype), v�rifies qu'il n'y ai pas de conflits � ce niveau...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par d�faut
    A vrai dire pour tout vous dire, je ne connais pas beaucoup de choses en javascript, mes connaissances sont plus vers d'autres langage web comme php mysql...

    mais je m'int�resse beaucoup �� javascript puisque je travail pas mal en ajax, par contre il est vrai que l� je s�che... et en effet je me suis rendu compte que dispatch n'avait aucun interet ici !

    en ce qui concerne l'id�e sur un conflit au niveau d'une bibliot�que je me suis rendu compte qu'en supprimant le fichier prototype.js je n'avais plus d'erreur, m�me si le script utilisant prototype ne marche plus. donc peut-etre cela viendrait-il de l� !?

    je vous remercie beaucoup pour votre �coute

    donc le sou�is pour vous transmettre le code, c'est que ajaxim, sur lequel j'ai bosser pendant 5h, est comport� de 15 fichiers .js, mais je ne sais pas lequel vous transmettre pour cibler mon probl�me.

    en ce qui concerne donc le second script qui est une mini gallerie image je vous ai envoy� le code dans mon premier message, j'ai essay� de modifier comme dit les add.event en add.eventlistener, en modifiant les variable entre ( ) de m�me... mais cela ne change rien, le second script marche toujours sans erreur, mais pas ajax im.

    avez vous des id�es, je suis � votre �coute, comment puis-je faire pour v�rifier si l'erreur vient d'interf�rence entre librairie ou bien d'ailleurs ?

    sur le site actuellement visible j'ai trois script javascript :

    1) un menu d�roulant plac� avant ajaxim qui marche plus lorsque ajaxim est dispos�, mais ajaxim lui marche.
    2) ajaxim qui ne marche que si je ne met pas le 3)
    3) la mini galerie image qui ne marche plus a l'arriv�e de ajaxim mais par contre elle empeche de fonctionner ajaxim aussi d'ou plus de javascript marche a l'arriv� de ajaxim

    et ennfin lorsque je n'ai pas ajaxim tout marche sans probl�me, il y a donc une interf�rence mais o� :p ? quel fichier dois-je vous transmettre pour m'aider un peu :p

    voici le lien de ajaxim http://ajaxim.com/download/3.41 tous les fichiers sont dans ce zip... si vous avez quelques minutes � m'accorder

    Merci beaucoup d'avance ^^

    PS : Ajaxim utilise la librairie prototype et ma gallerie d'image est en mootools... le probl�me serait-il l� ?
    par contre le menu d�roulant n'utilise pas de librairie et a l'arriv� de ajaxim il ne marche plus non plus

    voil� le code du menu d�roulant : ( rappel : le menu d�roulant et la galerie ensemble n'ont pas d'interf�rence )
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <SCRIPT LANGUAGE="JavaScript">
     
    <?php echo"
    bgcolor='#F7D469';
    bgcolor2='#FF9000';
    ";
    ?> 
    document.write('<style type="text/css">');
    document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:3;}')
    document.write('#topgauche { position:absolute;  z-index:10;  }')
    document.write('A:hover.ejsmenu {color:#0D2F85; text-decoration: none; font-family:Times New Roman;	font-size:14px;}')
    document.write('A.ejsmenu {color:#0D2F73; text-decoration:none;  font-family:Times New Roman;	font-size:14px;}')
    document.write('</style>')
    document.write('<div style="position:relative;height:25"><DIV class=popper id=topdeck></DIV>');
     
    zlien = new Array;
    zlien[0] = new Array;
    zlien[1] = new Array;
    zlien[2] = new Array;
    zlien[3] = new Array;
    zlien[4] = new Array;
    zlien[5] = new Array;
    zlien[6] = new Array;
     
    <?php $idd = $_SESSION['pseu_adm']; ?>
     
    zlien[0][0] = ' <img src="img/icon/silk/icons/cup.png"><A HREF="?id=<?php echo $idd; ?>&p=adm" CLASS=ejsmenu> &nbsp; Administration</A> -';
    zlien[0][1] = ' <img src="img/icon/silk/icons/cross.png"><A HREF="?id=<?php echo $idd; ?>&p=deco" CLASS=ejsmenu> &nbsp; Se Déconnecter</A> -';
     
    zlien[1][0] = ' <img src="img/icon/silk/icons/information.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=infos" CLASS=ejsmenu> &nbsp; Infos du site</A> -';
    zlien[1][1] = ' <img src="img/icon/silk/icons/picture.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=des" CLASS=ejsmenu> &nbsp; Design</A> -';
     
     
    zlien[2][0] = ' <img src="img/icon/silk/icons/bell.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=news&t=1" CLASS=ejsmenu> &nbsp; Edito</A> -';
    zlien[2][1] = ' <img src="img/icon/silk/icons/bomb.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=news&t=2" CLASS=ejsmenu> &nbsp; News / Actu</A> -';
     
    zlien[3][0] = ' <img src="img/icon/silk/icons/page_white_text.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=crea" CLASS=ejsmenu> &nbsp; Articles</A>';
    zlien[3][1] = ' <img src="img/icon/silk/icons/chart_organisation.png"><A HREF="?id=<?php echo $idd; ?>&p=adm&q=annu" CLASS=ejsmenu> &nbsp; Annuaire</A>';
     
    if(document.getElementById)
    	{
    	skn = document.getElementById("topdeck").style
    	skn.left = 99;
    	}
     
    function pop(msg,pos)
    {
    skn.visibility = "hidden";
    a=true
    skn.top = pos;
    var content ="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 WIDTH=150><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1>";
    pass = 0
    while (pass < msg.length)
    	{
    	content += "<TR><TD BGCOLOR="+bgcolor+" onMouseOver=\"this.style.background='"+bgcolor2+"'\" onMouseOut=\"this.style.background='"+bgcolor+"'\" HEIGHT=20><FONT SIZE=1 FACE=\"Verdana\">&nbsp;&nbsp;"+msg[pass]+"</FONT></TD></TR>";
    	pass++;
    	}
    content += "</TABLE></TD></TR></TABLE>";
    document.getElementById("topdeck").innerHTML = content;
    skn.visibility = "visible";
    }
    function kill()
    {
    	if(document.getElementById)
    		skn.visibility = "hidden";
    }
    document.onclick = kill;
    if(document.getElementById)
    	{
    	document.write('<DIV ID=topgauche><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 WIDTH=100 HEIGHT=40><TR><TD><TABLE CELLPADING=0 CELLSPACING=1 BORDER=0 WIDTH=100% HEIGHT=40>')
     
    document.write('<tr><TD WIDTH=142 ALIGN=center BGCOLOR='+bgcolor+' onMouseOver="this.style.background=\''+bgcolor2+'\';pop(zlien[0],0)" onMouseOut="this.style.background=\''+bgcolor+'\'"><A onClick="return(false)" onMouseOver="pop(zlien[0],0)" href=# CLASS=ejsmenu><FONT SIZE=1 FACE="Verdana"><img src="img/icon/silk/icons/house.png" border="0"> <B>Home</B></FONT></a></TD></tr>')
     
    document.write('<tr><TD WIDTH=142 ALIGN=center BGCOLOR='+bgcolor+' onMouseOver="this.style.background=\''+bgcolor2+'\';pop(zlien[1],20)" onMouseOut="this.style.background=\''+bgcolor+'\'"><A onClick="return(false)" onMouseOver="pop(zlien[1],20)" href=# CLASS=ejsmenu><FONT SIZE=1 FACE="Verdana"><img src="img/icon/silk/icons/cog.png" border="0"> <B>Configurer</B></FONT></a></TD></tr>')
     
    document.write('<tr><TD WIDTH=142 ALIGN=center BGCOLOR='+bgcolor+' onMouseOver="this.style.background=\''+bgcolor2+'\';pop(zlien[2],40)" onMouseOut="this.style.background=\''+bgcolor+'\'"><A onClick="return(false)" onMouseOver="pop(zlien[2],285)" href=# CLASS=ejsmenu><FONT SIZE=1 FACE="Verdana"><img src="img/icon/mini/icon_world_dynamic.gif" border="0"> <B>Zone Actu</B></FONT></a></TD></tr>')
    document.write('</TABLE></TD></TR></TABLE></DIV>')
    	}
    document.write('</div>');
    </SCRIPT>

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Ajaxim utilise la librairie prototype et ma gallerie d'image est en mootools... le probl�me serait-il l� ?
    Il y a de fortes chances...
    La plupart des librairies JavaScript ayant au moins en commun une fonction $...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. d�tection JVM install� avec script php/javascript
    Par <DYDY> dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 01/06/2006, 14h42
  2. R�ponses: 5
    Dernier message: 13/04/2006, 19h51
  3. [Javascript/Dhtml] Problemes avec la supression des formulai
    Par ETI-trian dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 29/03/2006, 20h49
  4. Probleme avec un script javascript->php
    Par leluis dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 23/03/2006, 15h32
  5. R�ponses: 2
    Dernier message: 20/08/2005, 19h23

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