Ticket #1452 (closed defect: fixed)
Les ancres sur les onglets ne marche pas partout
Reported by: | lipki | Owned by: | lipki+nikrou |
---|---|---|---|
Priority: | normal | Milestone: | 2.5.3 |
Component: | module:core | Version: | 2.5 |
Severity: | normal | Keywords: | |
Cc: |
Description
?tab="truc"&#truc
pas d'autres infos.
Change History
comment:3 Changed 10 years ago by lipki
Alors :
Suite à un commentaire sur IRC, je me suis rendu compte que je n'avais pas vraiment compris la demande (faut-dire la description est courte).
Donc apparemment le but (logique) est de pouvoir accéder aux onglet indépendamment avec un lien unique. Et accessoirement de pouvoir trouver facilement le lien de chaque onglet indépendamment.
On peux détecter le changement de # dans l'url via "onhashchange" pour les navigateurs récent, et via un plugin jQuery "hashchange" pour les vieux ie 6 et 7. (mais ce qui suis concerne tout les navigateurs.)
Pour récupérer le lien on à deux possibilités, laisser le comportement normal des liens qui compose les onglets. Ou modifier l'URL en JavaScript? en attrapant le clic sur les onglets.
Sachant que l'on attrape déjà le clic sur l'onglet, pour switcher le contenu de la page.
Si on garde le comportement actuel en ajoutant le (on)hashchange, on ce retrouve avec un comportement redondant.
- 1 Le clic est attrapé, le javascript switch la page.
- 2 L'url change
- 3 Le hashchange switch la page :/
C'est pas gênant, on switch deux fois vers le même onglet mais c'est pas terrible et ça peux causer des erreurs invisible aujourd'hui.
Du coup je propose de supprimer le comportement actuel qui attrape les clics sur les onglets. De garder le comportement basique d'une ancre.
- 1 L'url change
- 2 Le hashchange switch la page.
Mais du coup le switchage d'onglet qui fonctionne très bien aujourd'hui dépendra de onhashchange, et du plugin jQuery hashchange.
Ce sera plus clair avec le code : https://bitbucket.org/lipki/dotclear/pull-request/6/ticket-1452/diff
comment:4 Changed 10 years ago by bruno
Quitte à partir sur un truc jquery en plus, autant tout de suite remplacer le jquery.pagetab.js par les tabs de jquery-ui, qui supportent les ancres...
comment:5 Changed 10 years ago by lipki
Je ne trouve pas d'exemple ou les tabs modifie l'url comme une ancre..
J'ai peut-être mal chercher.
comment:6 Changed 10 years ago by bruno
Pourquoi vouloir modifier l'URL ? Si tu vas sur http://jqueryui.com/tabs/#tabs-2, ça pointe bien vers le 2e onglet.
comment:7 Changed 10 years ago by lipki
Pour pouvoir faire des signer, modifier l'historique, permettre de copier l'URL pour la donner à quelqu'un ou facilité le débogage sur le forum.
Enfin tout ce qui fait l'avantage d'un URL modifier.
(Il ne prend pas en compte la modification de l'URL à la main. C'est un détail ?)
Après je suis plutôt pour profiter des avantages de jQuery Ui s'il répond aux besoins et peut-être que l'on peux faire des modifs pour que ça marche comme décrit plus haut.
comment:9 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>
- Status changed from new to closed
- Resolution set to fixed
(In [81665c0f2d15]) Merged in lipki/dotclear/Ticket #1452 (pull request #70) - Fixes #1452
comment:10 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>
(In [b0df245846d5]) Merged in lipki/dotclear/Ticket #1452 2.5 (pull request #75) - addresses #1452
comment:11 Changed 10 years ago by Franck Paul <carnet.franck.paul@…>
(In [768f2c0b6b0e]) Merged in lipki/dotclear/Ticket #1452 (pull request #76) - addresses #1452
C'est quoi le principe ? si on met en # l'id du div que représente l'onglet, on est sensé switcher ?
Dans ce cas je ne trouve aucun morceaux de code sensé faire ça. Mais j'ai fait un patch.
https://bitbucket.org/dotclear/dotclear/pull-request/37/ticket-1452
j'utilise onhashchange qui n'est pas bien supporter par d'ancien navigateur.