Système d'onglets

Système d'onglets - HTML/CSS - Programmation

Marsh Posté le 27-06-2006 à 15:44:07    

Bonjour,
j'ai une question qui au départ, me semblait toute simple mais sur laquelle je bloque finalement (bon, je débute en js, ceci explique certainement cela)...
J'utilise le système d'onglets défini ici et tout fonctionne correctement.
Sauf que j'aimerais, en venant d'un lien, ouvrir une page disposant de ce système d'onglet directement sur un onglet en particulier.
J'ai donc essayé de passer en paramètre du lien une variable (monlien.htm?DiagTab=3 par exemple). Je pensais récupérer cette variable grâce à un onload et ouvrir l'onglet correspondant. J'arrive sans soucis à récupérer ma variable seulement ensuite je ne trouve pas comment ouvrir l'onglet voulu...
Visiblement c'est la méthode setSelectedIndex qui se charge d'ouvrir les onglets mais je ne vois pas sur quoi l'appliquer. J'ai essayé de l'appliquer directement sur mon tabPane mais il ne reconnait pas la méthode.
J'ai aussi essayé de passer par un tabPage.select() sans plus de succès (enfin de ce coté, ça m'a paru plus obscur et pas forcément utile)...
Voilà ma fonction en l'état actuel, mais je doute qu'elle apporte grand chose...
 

Code :
  1. function LoadTab()
  2. {
  3. var DiagTab=0;
  4. var requete = window.location.search ;
  5.  if (requete) {
  6.     requete=requete.substring(1) ;
  7.     eval(requete);
  8.  }
  9. DiagTab=DiagTab+1;
  10. {
  11. document.getElementById("tabPane1" ).setSelectedIndex(DiagTab);
  12. }


 
La solution est certainement simple mais décidément je ne vois pas.
Merci d'avance  :jap:

Reply

Marsh Posté le 27-06-2006 à 15:44:07   

Reply

Marsh Posté le 28-06-2006 à 15:12:57    

J'ai avancé (un peu) puisqu'en fait je n'avais pas compris comment fonctionnaient les "prototype".
Pour accéder à la méthode setSelectedIndex je dois donc passer par WebFXTabPane.prototype.setSelectedIndex(0);
Seulement ensuite la fonction bloque au niveau de this.pages[ this.selectedIndex ].show(); en me donnant la réponse que j'aime tant "this.pages has no properties" dans la fonction :
 

Code :
  1. WebFXTabPane.prototype = {
  2. setSelectedIndex: function ( n ) {
  3.  if (this.selectedIndex != n) {
  4.   if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
  5.    this.pages[ this.selectedIndex ].hide();
  6.   this.selectedIndex = n;
  7.   this.pages[ this.selectedIndex ].show();
  8.  }
  9. },


 
Je regarde ça de plus près mais si jamais quelqu'un a une idée du pourquoi, je suis preneur :p


Message édité par Klaw le 28-06-2006 à 15:22:23
Reply

Marsh Posté le 28-06-2006 à 16:01:06    

Ce système d'onglet en DHTML n'apporte strictement rien si ce n'est de l'innaccessibilité. :o
 
C'est quoi l'avantage par rapport à un système d'onglet classique ? Chargement 1/10° de seconde plus rapide ? (et encore... Faut tout charger de toutes manières...)

Reply

Marsh Posté le 28-06-2006 à 17:01:39    

En fait ce système d'onglets était particulièrement simple à adapter sur un site intranet déjà existant. J'avoue aussi que je ne me suis pas trop poser de questions, le système me paraissait convenir à ce que je cherchais et j'ai donc pris celui-ci...

Reply

Marsh Posté le 28-06-2006 à 18:00:45    

Klaw a écrit :

En fait ce système d'onglets était particulièrement simple à adapter sur un site intranet déjà existant. J'avoue aussi que je ne me suis pas trop poser de questions, le système me paraissait convenir à ce que je cherchais et j'ai donc pris celui-ci...


 
Ah, si c'est pour de l'intranet, là c'est différent, tu peux utiliser ce genre de solution si ça te chante... [:spamafote]
 
Les contraintes en intranet et pour internet sont évidemment différentes puisque tu controles par exemple le fait que JS est présent partout. ;)

Reply

Marsh Posté le 29-06-2006 à 10:34:21    

Bon, je n'avance pas vraiment avec ce problème...
Le problème est sur le "this" qui, comme je n'appelle pas la fonction depuis le tabPane, ne correspond pas (forcément).
Seulement même en essayant de passer par le tabPane ou quoi que ce soit d'autre (j'ai du essayer pas mal de possibilités, même les plus stupides), rien à faire, je ne trouve pas à quel élément correspond ce this :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed