Page 1 sur 2

Problème cohabitation prototype / ExtJS

Posté : 29 mars 2010, 23:55
par momox
Hello :)
Je suis en train de concevoir une interface pour un projet, je dois utiliser d'un coté prototype, et de l'autre ExtJS.
Et comble du bonheur, tout fonctionne parfaitement sous Firefox, mais dès que je passe sous IE, catastrophe nationale...
J'ai droit a "Stack Overflow on line: 4680" et pfiouf, tout disparait.
Donc petite séance de débug, je met une librairie seule, puis l'autre.
Et la, c'est le drame.
Quand je laisse prototype seul, j'ai une erreur a la ligne 2216 au caractère 9, or, j'utilise la dernière version de prototype...

Ce n'est pas la première fois que je suis sujet a des désagréments lors de dévellopements avec IE, et c'est franchement très lourd a force...

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 01:01
par stealth35
hello, sous quelle version de IE ta des probleme ? t'utilise ExtJS en CDN ?

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 02:04
par AB
Houlà bon courage avec prototype, en plus niveau cohabitation avec d'autres script c'est pas ce qui se fait de mieux :(

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 09:46
par stealth35
Houlà bon courage avec prototype, en plus niveau cohabitation avec d'autres script c'est pas ce qui se fait de mieux :(
je l'ai abandonné aussi, je suis passer a Dojo

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 11:35
par momox
Au départ, j'utilisais JQuery, puis prototype m'a bluffé avec son système de selecteurs css, donc je me suis tournée vers cette librairie.
Et elle ne m'a jamais déçu pour l'instant, hormis le manque de quelques effets, même couplé à scriptaculous.

Sinon, pour répondre a Stealth, j'ai testé sous IE8, et j'utilise la version de dev de ExtJs, non-compressée en local.

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 11:36
par stealth35
ta essayer en mode compatibilité ? sous IE8 le javascript est beaucoup plus strict

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 12:49
par momox
Ca donne toujours la même chose.
Maintenant le stack overflow est ligne 7, mais je ne sais toujours pas ou, vu que c'est un prompt type alert, qui me l'affiche...
Y t'il une librairie js qui soit aussi pratique que prototype et qui permette l'utilisation des sélecteurs css pour sélectionner des éléments ?

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 14:40
par stealth35
toute normalement, j'utilise Dojo moi, mais ca assez lourd, sinon t'as jquery qui est plus légé, voir mootools

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 22:38
par momox
Je vais regarder du coté de JQuery, que je connais déjà un petit peu, mais que je dois approfondir.
Bonne soirée ;)

Re: Problème cohabitation prototype / ExtJS

Posté : 30 mars 2010, 22:48
par AB
Me semble que c'est une bonne idée.
Je ne l'utilise pas personnellement mais de ce que j'ai lu, JQuery a une bonne réputation parmi les membres de ce forum, ailleurs également.

Re: Problème cohabitation prototype / ExtJS

Posté : 31 mars 2010, 14:54
par Calimero
Au départ, j'utilisais JQuery, puis prototype m'a bluffé avec son système de selecteurs css, donc je me suis tournée vers cette librairie.
Je m'interroge là : qu'as tu trouvé dans prototype qui ne soit pas dans jQuery au niveau des sélecteurs CSS ?

Perso je rêve tous les jours que les browsers les plus courants implémentent les sélecteurs CSS aussi bien que le fait jQuery... =P~

Re: Problème cohabitation prototype / ExtJS

Posté : 31 mars 2010, 22:03
par momox
Au départ, j'utilisais JQuery, puis prototype m'a bluffé avec son système de selecteurs css, donc je me suis tournée vers cette librairie.
Je m'interroge là : qu'as tu trouvé dans prototype qui ne soit pas dans jQuery au niveau des sélecteurs CSS ?

Perso je rêve tous les jours que les browsers les plus courants implémentent les sélecteurs CSS aussi bien que le fait jQuery... =P~
On va dire que j'ai testé prototype en premier...
Quand j'avais testé jQuery, j'en étais resté au simple $('id_de_l_element') et aux effets...
Influences, quand tu nous tiens...

Re: Problème cohabitation prototype / ExtJS

Posté : 01 avr. 2010, 00:18
par Calimero
Ok d'ac ;)

Parceque côté jQuery, y'a vraiment largement de quoi faire.

D'ailleurs c'est pas forcément super connu, mais jQuery se compose en fait de deux parties bien distinctes : le parseur CSS et le framework javascript. Je serais pas surpris (pas été vérifier non plus) que le parseur CSS soit commun à d'autres frameworks JS.

Re: Problème cohabitation prototype / ExtJS

Posté : 01 avr. 2010, 00:56
par Nours312
Parceque côté jQuery, y'a vraiment largement de quoi faire.
c'est sur qu'à ce niveau là ...prototype est à la ramasse !!

mais on pourrait dire qu'il est plus "conforme" avec les CSS Rules ... et n'était-ce pas ce qu'il était sensé être !?

maintenant, j'avoue que je suis pro-tototype ^^ et que ce genre de selector$('div:has(p)') semble très pratique comparé à son équivalent prototype ::
$$('div').findAll(function(el){return el.down(p) !== undefined ; });

Mais je dirai que c'est plus parce que jQuery mélange un peu toutes les fonctions basées sur la manipulation des ElementsHTML en une seule ... ça n'est pas lourd !?

:D

Re: Problème cohabitation prototype / ExtJS

Posté : 04 avr. 2010, 12:56
par momox
Investigations toujours avec mon problème...
En fait, après recherches, il s'avére que c'est IE qui me cause des soucis...

Voici mon script:
function updateClock() {
	var currentTime = new Date();
	var systemTime = new Ajax.Request('./system_time.php', {onSuccess: function(response) {
		currentTime.setTime(response);
	}});
	var days = {0: 'Dimanche', 1: 'Lundi', 2: 'Mardi', 3: 'Mercredi', 4: 'Jeudi', 5: 'Vendredi', 6: 'Samedi'};
	var months = {0: 'Janvier', 1: 'Février', 2: 'Mars', 3: 'Avril', 4: 'Mai', 5: 'Juin', 6: 'Juillet', 7: 'Aout', 8:'Septembre', 9:'Octobre', 10: 'Novembre', 11: 'Décembre'};
	var timeData = {'hour': (currentTime.getHours() < 10 ? '0' + currentTime.getHours() : currentTime.getHours()) + ':' + (currentTime.getMinutes() < 10 ? '0' + currentTime.getMinutes() : currentTime.getMinutes()), 'date': days[currentTime.getDay()] + ' ' + (currentTime.getDate() < 10 ? '0' + currentTime.getDate() : currentTime.getDate()) + ' ' + months[currentTime.getMonth()] + ' ' + currentTime.getFullYear()};
	$('time').update(timeData.hour);
	$('date').update(timeData.date);
}

function resizeDesktop() {
	//resizing #desktop
	//getting window total height
	var windowHeight = window.innerHeight;
	//getting other elements
	var blockElements = $$('body > div[class~="block-element"]');
	var totalHeight = 0;
	blockElements.each(function(el){
		alert(el.id + ':' + el.clientHeight);
		totalHeight = parseInt(totalHeight) + parseInt(el.clientHeight);
	});
	var desktopHeight = windowHeight-totalHeight;
	$('desktop').setStyle({height: desktopHeight + 'px'});
	
	//resizing #appsbar div.apps-list width
	var windowWidth = window.innerWidth;
	var appsListElements = $$('div#appsbar div.apps-list');
}

//What to do on window loading ?
Event.observe(window, 'load', function() {
	//syncronizing with server time
	updateClock();
	//we update clock every minute
	new PeriodicalExecuter(updateClock, 60);
	resizeDesktop();
});

//what to do on window resizing ?
Event.observe(window, 'resize', function() {
	resizeDesktop();
});
Mon problème se situe au niveau de
var windowHeight = window.innerHeight;
qui n'existe pas sous IE...
D'ou mon problème...
Ca me retourne un undefined, qui par la suite des opérations me fait un joli NaN quand je veux calculer la hauteur de ma div "desktop" ... et a partir de la, j'ai droit a mon bug IE...

J'ai exploré toutes les propriétés de IE concernant la taille des fenetres (document.body.clientHeight entre autres) qui ne me retourne jamais la bonne taille...
60px dans le meilleur des cas, alors que j'attends près de 800px environ...