Problème cohabitation prototype / ExtJS

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème cohabitation prototype / ExtJS

Re: Problème cohabitation prototype / ExtJS

par Nours312 » 04 avr. 2010, 18:28

désolé, j'avais pas fait gaffe à ta réponse !...

par contre, si tu utilises prototype, il y a plus simple :: document.viewport.getDimensions().height.

http://prototypejs.org/api/document/viewport/getHeight

@++

Re: Problème cohabitation prototype / ExtJS

par momox » 04 avr. 2010, 13:40

t'as testé (juste pour IE) : document.documentElement.clientHeight ?
Regarde la ligne de code dans le message précédent, j'y ai utilisé cette ligne ;)

Re: Problème cohabitation prototype / ExtJS

par Nours312 » 04 avr. 2010, 13:37

t'as testé (juste pour IE) : document.documentElement.clientHeight ?

Re: Problème cohabitation prototype / ExtJS

par momox » 04 avr. 2010, 13:27

Problème résolu ;)

Alors, pour obtenir la hauteur de la fenêtre:
var windowHeight = Prototype.Browser.IE ? document.documentElement.clientHeight : window.innerHeight;
Et pour l'incompatibilité ExtJs / Prototype du a la définition des deux librairies de la fonction Function.prototype.defer(), j'ai appliqué le patch suivant: http://www.extjs.com/forum/showpost.php ... post385776

Et maintenant, tout fonctionne :)

Re: Problème cohabitation prototype / ExtJS

par momox » 04 avr. 2010, 12:56

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...

Re: Problème cohabitation prototype / ExtJS

par Nours312 » 01 avr. 2010, 00:56

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

par Calimero » 01 avr. 2010, 00:18

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

par momox » 31 mars 2010, 22:03

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

par Calimero » 31 mars 2010, 14:54

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

par AB » 30 mars 2010, 22:48

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

par momox » 30 mars 2010, 22:38

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

par stealth35 » 30 mars 2010, 14:40

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

par momox » 30 mars 2010, 12:49

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

par stealth35 » 30 mars 2010, 11:36

ta essayer en mode compatibilité ? sous IE8 le javascript est beaucoup plus strict

Re: Problème cohabitation prototype / ExtJS

par momox » 30 mars 2010, 11:35

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.