11496 sujets

JavaScript, DOM et API Web HTML5

Pages :
Modérateur
(reprise du message précédent)

Salut,

function GetCursor(e) {
  if (navigator.appName.indexOf("Explorer") > -1) {
    this.curY = event.clientY;
    this.curX = event.clientX;
  }
  else{
    this.curY = e.clientY;
    this.curX = e.clientX;
  }
}

matmat a écrit :
Quelle est la meilleur methode, dans quelle cas utiliser un constructeur et dans quel cas un fonction?
Le constructeur est plus souple d'utilisation. Généralement, c'est préférable dans le cadre d'une bibliothèque que tu souhaites agrandir malgré que ça puisse augmenter légérement le volume de code (dans un premier temps)... sauf que...

Opera comprend ceci :
if(navigator.appName.indexOf("Explorer") > -1)

et ce n'est généralement pas une bonne idée que de tester par rapport au nom d'un navigateur (il vaut mieux tester les codes propriétaires) donc il vaudrait mieux écrire :
if(document.attachEvent)
par exemple ou, au pire, ajouter à ton code précédent :
if(!window.opera && navigator.appName.indexOf("Explorer") > -1)


Par ailleurs, si tu mets this, le jour où tu passes avec des événements de type DOM-2, ça ne fonctionnera plus pour IE. Le mieux, c'est de créer un paramètre (argument) supplémentaire pour ta fonction et de le mettre à la place du this.

Pour les variables globales, je ne comprends pas ici en quoi elles te seraient utiles.

Et dans ta dernière fonction, tu peux mettre :
function setOpacity(obj, xOpacity)
{
   var objStyle = obj.style;
   objStyle.opacity = objStyle.MozOpacity = objStyle.KhtmlOpacity = xOpacity;
   objStyle.filter = 'alpha(opacity=' + xOpacity * 100 + ')';
}

Modifié par koala64 (13 Jan 2007 - 00:03)
matmat a écrit :
Dans le même etat d'esprit est ce que tu aurais une idée pour améliorer celui ci:
Déjà, mettre le mot-clé "var" devant tes variables locales.
matmat a écrit :
Ce pourrait être pratique de faire une listes de fonctions pour simplifier l'adaptation aux différents navigateurs.
Une bibliothèque JavaScript, tu veux dire ? Smiley lol
a écrit :
Une bibliothèque JavaScript, tu veux dire ?

Exactement, sauf que celle que j'ai essayé (prototype, dojo) sont enorme est j'ai pas besoin du quart de ces fonctions, par contre si il existe quelque chose d'un peu comprehensible qui regroupe ces fonctions qui utilise des codes proprietaires (quel concept à la #$*) , ou resolvent des problémes de compatibilités, je veux bien essayer.
matmat a écrit :
Exactement, sauf que celle que j'ai essayé (prototype, dojo) sont enorme est j'ai pas besoin du quart de ces fonctions, par contre si il existe quelque chose d'un peu comprehensible qui regroupe ces fonctions qui utilise des codes proprietaires (quel concept à la #$*) , ou resolvent des problémes de compatibilités, je veux bien essayer.
Moi aussi. Smiley smile
Quand qqch n'existe pas il suffit de l'inventer ... Smiley cligne
Bon après faut avoir le temps ... Smiley rolleyes

En tout cas quand vous faites des fonction utiles vous pouvez toujours les rajouter dans le sujet des scripts utiles, et si tout le monde le fait on finira par avoir une super bibliothèque ...
Modifié par CNeo (13 Jan 2007 - 10:57)
Salut,

Apparemment (je ne m'y connais pas trop en javascript), mais la librairie du moment serait jquery, une librairie assez légère… Tristan en parle un peu dans un de ses billets car l'auteur a été engagé chez Mozilla. Les démos sont pas mal. Smiley cligne
Modifié par Patidou (13 Jan 2007 - 15:46)
Tres interressant l'article de Peter-Paul Koch, pour ma part je pense que c'est un peu comme avec un cms php, au debut quand t'on ne connais pas vraiment php c'est super percequ'on peut faire des truc qu'on n'aurait jamais fait sans, et puis quand on commence a en avoir un usage professionel, un jour on nous demande une de réaliser une fonction qui n'est pas dans le cms, alors on ce dit zut, j'aurais dut apprendre les bases... Et puis même quand on commence à connaitre mieux le php, finalement on continue quand même a utiliser notre bon vieux cms, parcequ'on gagne quand même en temps fou, mais au moins on comprend mieux comment il marche et on est libre de jouer avec.
Avec les librairies js ça a l'air un peu pareil, en connaissant js et donc en comprennant un peu plus le fonctionnement, on peut faire vraiment faire plein de chose avec ces librairies, mais je n'arrive pas a faire mon choix, et surtout je n'arrive pas trouver un truc qui puisse être suffisament génerique pour faire ce que je veux. Jquery à l'air vraiment bien, j'était tombé dessus une fois sans m'attarder plus que ça, et là je viens de lire la page des plugins et c'est vraiment impressionant!
Pour revenir à la fonction "getWindow(){". Celle là justement je ne voulais pas "l'encapsuler" parceque je trouve beaucoup plus pratique d'avoir accés a mes variables pageWidth et pageHeight depuis n'importe ou dans mon script sans a voir a appeler la fonction, de plus il me semble que c'est plus efficace, en effet pourquoi éxecuter quinze fois une fonction qui n'a besoin d'être éxecuté qu'un seule fois (et avec l'évenement onresize, c'est mieux)?
Modifié par matmat (13 Jan 2007 - 18:22)
a écrit :

matmat a écrit :
Exactement, sauf que celle que j'ai essayé (prototype, dojo) sont enorme est j'ai pas besoin du quart de ces fonctions, par contre si il existe quelque chose d'un peu comprehensible qui regroupe ces fonctions qui utilise des codes proprietaires (quel concept à la #$*) , ou resolvent des problémes de compatibilités, je veux bien essayer.


Comme d'habitude je vadrouillais sur le Web et en suivant des liens du WaSp j'ai trouvé ceci :The only JavaScript library you'll ever need

J'ai pas eu le temps de tout lire (et j'suis pas expert Javascript) mais cela me semble interressant ...
Modifié par kzone (14 Jan 2007 - 20:41)
C'est interressant, mais ça resoud pas vraiment les question de compatibilitées entre naviguateurs, c'est plutot des fonctions utiles dont l'utilisation revient souvent.
ça j'ai bien aimé:

/*
	Copyright Robert Nyman,  http://www.robertnyman.com
 
	Free to use if this text is included
*/
// ---
function $(strId){
	return document.getElementById(strId);
}

Modifié par matmat (14 Jan 2007 - 21:06)
Pages :