11548 sujets

JavaScript, DOM et API Web HTML5

Pages :
Bonjour à tous !

Voilà, je voudrais savoir si quelq'un connais une méthode pour trifouiller l'historique de navigation d'un browser : rajouter des entrés notament, pour qu'un history.back renvoi vers une page que l'on a nous meme entré.

Je ne cherche pas de commentaire sur l'utilité de la chose, ou le pourquoi du comment, je sais ce que je fais, et pourquoi je le fait, tout se que je veux savoir, c'est si c'est possible, et si oui, comment ?

j'ai déjà rapidement survolé Yahoo ui (http://developer.yahoo.com/yui/history/) mais je trouve la doc plutot incompréhensible, donc si vous connaissez d'autres solution ou que vous connaissez un bon tuto en francais, je suis aussi preneur

Merci d'avance à tout ceux qui m'apporteront leur aide, ou quelques pistes.
Modérateur
Ouais, en fait, c'est le meme principe que tout le reste : on garde l'uri sur laquelle on est, et on rajoute #cequonveux apres... ce que je voudrais faire, c'est vraiment rentrer des uri complete dans l'historique...
???

J'ai pas bien compris...
ce que je voudrais faire, c'est rajouter l'URI (non ajax) vers la page qui m'interresse
Modifié par Assimil (16 Aug 2007 - 13:54)
Bah tu me dis que tu trouves pas comment faire pour mettre une page avec un autre nom de domaine mais que tu peux rajouter ce que tu veux après donc :

tu es là : http://www.example.com/dir/
tu rajoutes redir.php?unautredomaine.com/dir/pageoùtuveuxaller.htm

Si j'ai mal compris ce que tu as dis ou si c'est pas ce que tu cherches à faire alors désolé de t'avoir fait perdre du temps.
Ah ok il y a toujours un dièse dans ce cas désolé c'est moi qui ai mal compris ...

Édit : la solution qui me vient à l'esprit c'est de faire croire au client qu'il est sur le site que tu veux rajouter dans l'historique mais je sais pas si c'est possible et encore moins comment.
Modifié par CNeo (16 Aug 2007 - 15:21)
Je n'arrive quand meme pas à comprendre ton raisonnement de départ : meme si il n'y avait pas le diese, à partire du moment ou je suis capable de renvoyer vers une page qui redirige, je ne vois pas pourquoi je ne renverais pas directement vers la page qui m'interesse...

Enfin, je n'arrive toujours pas à trouver une solution à ce casse tete, et ça m'enerve...
Salut,

Je ne vais pas faire de technique Javascript mais, de quel droit modifierait-on l'historique de navigation de l'internaute ?

J'ai connu des procédés intrusifs mais ça, ça dépasse l'entendement. Comment les personnes déficientes qui naviguent au clavier vont pouvoir s'en sortir ?

Le reour à la page précédente est un droit que tu as l'air de vouloir bafouer au profit de ton besoin. Fait ce qu'il faut au niveau de ton contenu pour que ton visiteur ait envi d'aller sur ta page et arrête les magouilles.

Pas glop Smiley fache
@papyjo : c'est marqué dans le premier post qu'il ne veut pas der remarque sur le pourquoi.

@Assimil : je comprends plus rien je vais reprendre du début. Smiley biggol
Assimil a écrit :
à partir du moment ou je suis capable de renvoyer vers une page qui redirige, je ne vois pas pourquoi je ne renverais pas directement vers la page qui m'interesse...
Bah si la page est plus haut dans l'arborescence ou si elle est sur un autre serveur.

Enfin bref on s'en fout puisque c'est moi qui me suis trompé. Smiley smile
Modifié par CNeo (16 Aug 2007 - 18:07)
CNeo a écrit :

@papyjo : c'est marqué dans le premier post qu'il ne veut pas der remarque sur le pourquoi.


Les raisons importent peu, une mauvaise action reste une mauvaise action quelle que soit la raison.

Je ne lui demande pas ses raisons, je lui dis que ce ne sont pas de bonnes pratiques.
papyjo a écrit :
Les raisons importent peu, une mauvaise action reste une mauvaise action quelle que soit la raison.
Sauf si c'est seulement pour lui seul ...
Modérateur
arf... Le mot trifouiller n'était pas très approprié... Smiley ravi

Dans un autre sujet, Assimil se sert d'Ajax pour ses pages mais rencontre un des problèmes récurrents de cette technique : On perd d'entrée de jeu l'historique et le bookmark, ce qui bride l'utilisateur... donc, pour le coup, non, au contraire papyjo, c'est pour la bonne cause qu'il souhaite ce genre de chose ; il cherche plus à rétablir qu'à trifouiller. Smiley cligne

Bref, comme ça parlait aussi galerie photos pas loin, je laisse un exemple d'une galerie avec un préchargement en Ajax qui prend en compte l'historique, le bookmark et la navigation clavier (pour le coup, ce n'était pas dur vu que l'événément click fonctionne au clavier Smiley langue ) :

http://koalnet.com/divers/galerie_photos/cathedrale-notre-dame.php

Pour les sources, vous avez accès au JS, ce qui permet déjà de comprendre le principe de fonctionnement. Il y a, en fait, un fichier JSON dont je me sers aussi bien dans la partie Ajax que PHP ; ça permet de n'avoir qu'une source pour plusieurs technologies donc une maintenance simplifiée. Smiley smile

Quelques explications par rapport au script :

Le script est lancé par la méthode oO.init(). Dans celle-ci, je lance le préchargement des photos avec oO.preload() ce qui consiste à faire une requête Ajax via oO.getXHR(...) pour récupérer le contenu du fichier JSON. Vu que celle-ci s'effectue en asynchrone, je ne bloque pas le navigateur. Une fois récupéré, je crée le contenu susceptible d'être appelé et, via la méthode oO.prepaGalerie(), je le conserve dans un tableau en mémoire (oO['pictures']). Dans cette dernière méthode, je crée en parallèle un tableau d'identifiant (oO['hash']) en me servant des noms de fichier. Ce tableau est de même longueur que le tableau de contenu afin d'associer un hash (#... d'une url) à chaque membre du premier tableau oO['pictures'].

De là, je lance la méthode oO.control() qui surveille en permanence si le nom de fichier de l'image en cours correspond au nom de fichier php (ou au hash). En fait, je dis que si l'url a un hash, on vérifie que celui-ci correspond au nom du fichier source de la grande photo. S'il n'y a pas de hash, je fais la vérif' sur le nom de fichier. En cas de différence, je lance la méthode oO.changePage(...) qui me rétablit la photo correspondant à l'url.

Pour finir mon initialisation, je lance la méthode oO.displayPics(...) qui affecte à chaque lien de la div globale la méthode oO.replacePic(...) lorsqu'on clique dessus. Cette dernière met à jour le contenu à chaque clic sur les vignettes en allant chercher les données dans les tableaux et non sur le serveur.

PS : Ca marche bien sur les Gecko et Safari (win)... Pour les autres, pas d'historique ni de bookmark... dommage... Smiley lol
Modifié par koala64 (17 Aug 2007 - 03:34)
a écrit :

Salut,

Je ne vais pas faire de technique Javascript mais, de quel droit modifierait-on l'historique de navigation de l'internaute ?

J'ai connu des procédés intrusifs mais ça, ça dépasse l'entendement. Comment les personnes déficientes qui naviguent au clavier vont pouvoir s'en sortir ?

Le reour à la page précédente est un droit que tu as l'air de vouloir bafouer au profit de ton besoin. Fait ce qu'il faut au niveau de ton contenu pour que ton visiteur ait envi d'aller sur ta page et arrête les magouilles.

Pas glop fache


Wééééé j'en étais sur qu'un belu ferait cette remarque ! y'a toujours un mec pour faire la morale alor qu'il n'a meme pas suivit la discussion, sur les forums !

Au choix, soi tu lit le premier post de ce topic ou je dit :
a écrit :
Je ne cherche pas de commentaire sur l'utilité de la chose, ou le pourquoi du comment, je sais ce que je fais, et pourquoi je le fait, tout se que je veux savoir, c'est si c'est possible, et si oui, comment ?

car un pavé avec du code et une explication du pourquoi du comment rebute le chalant, soit du cherche vraiment à comprendre ce que je fait avant de juger, et dans ce cas, tu trouve focément ce topic que j'ai cité plus haut.

Justement, le principe est de RAJOUTER dans l'historique les pages sur lequelle navigue la personne en Ajax, parceque, comme tu n'a pas suivit, sache que quand on navigue en Ajax dans un site, le navigateur n'enregistre rien dans l'historique, résultat, tu veux revenir à la page précédante ? et bin tu peux pas ! que tu navigue au clavier, ou pas. Et comme mon site est aussi accessible en non ajax, je voulais rajouter dans l'historique le lien non ajax de chaque page visité en ajax, ainsi, tout le monde s'y retrouverais...

Enfin, c'est pas grave, au moin, t'as un post de plus à ton actif

et franchement, quand on utilise des techniques comme ça :
<img src="images/blank.gif" class="icon icon-reseau" alt="">

ou pire une image utilie :

<img class="imgdroite none jolibo" src="images/box.jpg" width="201" height="226" alt="">

sur son site (http://www.apicnet.net/), on parle pas d'accessibilité, surtout que ton site ne passe pas le test de validation d'accessibilité WAI...

Elle vont etre contentes les pesonnes qui utilisent des navigateurs convertisseur en braille ou lecteur de texte de ne pas savoir à quoi correspondent les images !

Tous mes sites passent les test WAI et sections 508, et je n'ai pas besoin d'utiliser des des alt vide pour passer la validation artificielement, ou blank.gif pour la mise en page.

Et puis ton CSS est d'une telle qualité, uniquement avec des propriété qui existe, et tellement codé avec les bonne pratique, que tu peux largement de permettre d'intervenir sur des jugement de la sorte ^^ (et que dire pour ton html)
Modifié par Assimil (17 Aug 2007 - 11:19)
koala64 a écrit :

PS : Ca marche bien sur les Gecko et Safari (win)... Pour les autres, pas d'historique ni de bookmark... dommage... Smiley lol


Je te remerci pour ta solution, elle permet de mieux comprendre le fonctionnement, cepandant, je ne peut pas me permettre de laisser de coté toute la famille IE...

Par contre, pourais tu me dire, dans tout ton JS, quelle est juste la fonction qui permet d'ecrre dans l'URL et l'historique ?

et aussi celle qui permet d'y lire....

Ca me permettra de faire quelques teste pour voir si j'arrive à mes fins

En tout cas, merci beaucoup
Modérateur
Assimil a écrit :

Salut,

Je ne vais pas faire de technique Javascript mais, de quel droit modifierait-on l'historique de navigation de l'internaute ?

J'ai connu des procédés intrusifs mais ça, ça dépasse l'entendement. Comment les personnes déficientes qui naviguent au clavier vont pouvoir s'en sortir ?

Le reour à la page précédente est un droit que tu as l'air de vouloir bafouer au profit de ton besoin. Fait ce qu'il faut au niveau de ton contenu pour que ton visiteur ait envi d'aller sur ta page et arrête les magouilles.

Pas glop fache


Wééééé j'en étais sur qu'un belu ferait cette remarque ! y'a toujours un mec pour faire la morale alor qu'il n'a meme pas suivit la discussion, sur les forums !

Au choix, soi tu lit le premier post de ce topic ou je dit :
a écrit :
Je ne cherche pas de commentaire sur l'utilité de la chose, ou le pourquoi du comment, je sais ce que je fais, et pourquoi je le fait, tout se que je veux savoir, c'est si c'est possible, et si oui, comment ?

car un pavé avec du code et une explication du pourquoi du comment rebute le chalant, soit du cherche vraiment à comprendre ce que je fait avant de juger, et dans ce cas, tu trouve focément ce topic que j'ai cité plus haut.

Justement, le principe est de RAJOUTER dans l'historique les pages sur lequelle navigue la personne en Ajax, parceque, comme tu n'a pas suivit, sache que quand on navigue en Ajax dans un site, le navigateur n'enregistre rien dans l'historique, résultat, tu veux revenir à la page précédante ? et bin tu peux pas ! que tu navigue au clavier, ou pas. Et comme mon site est aussi accessible en non ajax, je voulais rajouter dans l'historique le lien non ajax de chaque page visité en ajax, ainsi, tout le monde s'y retrouverais...

Enfin, c'est pas grave, au moin, t'as un post de plus à ton actif

et franchement, quand on utilise des techniques comme ça :
<img src="images/blank.gif" class="icon icon-reseau" alt="">

ou pire une image utilie :

<img class="imgdroite none jolibo" src="images/box.jpg" width="201" height="226" alt="">

sur son site (http://www.apicnet.net/), on parle pas d'accessibilité, surtout que ton site ne passe pas le test de validation d'accessibilité WAI...

Elle vont etre contentes les pesonnes qui utilisent des navigateurs convertisseur en braille ou lecteur de texte de ne pas savoir à quoi correspondent les images !

Tous mes sites passent les test WAI et sections 508, et je n'ai pas besoin d'utiliser des des alt vide pour passer la validation artificielement, ou blank.gif pour la mise en page.

Et puis ton CSS est d'une telle qualité, uniquement avec des propriété qui existe, et tellement codé avec les bonne pratique, que tu peux largement de permettre d'intervenir sur des jugement de la sorte ^^ (et que dire pour ton html) ouééé... vive le vendredÿ ! Smiley biggol

Plus sérieusement, inutile d'attaquer de la sorte... on n'est pas sur un ring donc merci de t'abstenir de ce genre de chose. Smiley jap Tu peux parfaitement exprimer ton désaccord sans pour autant t'emporter. (ce qui ne servait à rien ici vu que je venais de l'expliquer au-dessus) Smiley cligne
Papyjo pensait réellement que c'était dans un but néfaste d'où son post... et dans ce cas, il n'est pas toujours tendre... C'est de coutume... Smiley lol Vous ne vous connaissez pas encore assez... Smiley langue

a écrit :
Par contre, pourais tu me dire, dans tout ton JS, quelle est juste la fonction qui permet d'ecrre dans l'URL et l'historique ?
Non, c'est le fonctionnement global du script qu'il te faut comprendre ; c'est un ensemble indissociable :

- préchargement du contenu,
- mémorisation de celui-ci,
- création d'autant de hash que de possibilités,
- vérification de la concordance entre le contenu et l'url,
- écriture du contenu et de l'url.

Tu ne peux pas obtenir le même résultat sans toutes ces actions... d'où la difficulté de la chose.

Pour ce qui est du code fait main, je n'ai pas vu ou fait mieux pour l'instant... Je connaissais un autre site ( http://www.web2master.fr/ ) qui visait l'Ajax accessible mais il souffre des mêmes problèmes.

En fait, avec IE, le soucis, c'est que, lorsqu'on clique sur une ancre, il ne l'inscrit pas dans l'historique... Tu peux faire le test avec un lien du type :
<a href="#kiwi">kiwi</a>
Clique sur précédent, l'ancre reste... C'est gênant et je ne vois pas trop comment rétablir cela. Smiley ohwell
A priori, si j'ai bien cerné, dans la solution de mootools, il génère un clic automatique sur le lien afin d'ajouter une entrée dans l'historique puis il rajoute le hash. Faut voir... faire des tests... toussa...

Pour Opera, il conserve bien l'historique mais ne met pas le contenu à jour lorsqu'on clique sur précedent ou lorsqu'on lance un bookmark. Je pense que ça peut se corriger en faisant une requête supplémentaire suite à la vérif' de l'url.

Pour la solution de mootools, c'est plusieurs exemples en un. Regarde bien le code, décortique le et tu verras que certaines parties du script concernent uniquement les boutons du haut, l'accordéon, les liens ou encore le bookmark. Les seuls points communs sont l'initialisation et le lancement du gestionnaire.

Cela dit, j'ai fait un essai avec mootools en suivant scrupuleusement le principe du script :
Résultat : erreur interne à mootools (J'adore les bibliothèques dans ce cas ! Faut se taper les 20~200ko de JS imbitable Smiley biggol )

Bref, je pense qu'il faut s'en inspirer si tu veux parvenir à tes fins mais je n'ai pas de meilleure solution à l'heure actuelle. Smiley confus

Si quelqu'un a une idée ou sait déjà comment faire pour résoudre ces problèmes, je suis tout ouïe. Smiley murf
Modifié par koala64 (17 Aug 2007 - 12:15)
Pages :