Hello tout le monde,

Je viens depuis pas mal de temps vous lire pour trouver quelques astuces, alors grand merci à ceux qui posent tout un tas de questions farfelues et merci à tout ceux qui y répondent.
Je ne suis pas développeur, mais ça m'arrive de mettre les main dedans par loisir.
Et aujourd'hui je suis un peu bloqué, donc voici mon premier post par ici, en espérant qu'il trouve une réponse.

Explication de ce qui est attendu :

J'aimerai qu'un utilisateur sur mon site puisse cliquer sur un article, ouvrir la page demandée et qu'après lecture de ce dernier, puisse cliquer sur un bouton (fermer) pour revenir sur la page précédente. (

Avec l'utilisation de ce bout de code : <a href="javascript:history.go(-1)">Retour</a>
ça marche plutot bien, en plus de cela l'utilisateur se retrouve exactement au même endroit et peut donc continuer d'ouvrir les articles suivants, sans devoir re-scroller jusqu'en bas pour continuer la lettre du blog.


Sauf que mon problème, c''est que cette technique fonctionne si l'utilisateur a de l'historique sur le site.
Mais si il y accède via une URL directe, (par e-mailing par exemple).
Il ne sera pas redirigé sur la bonne page.

Est-ce qu'il est possible d'avoir une condition qui dirait, si le user vient d'une page du site on retourne dessus (via la technique citée ci-dessus) sinon on renvoi sur une URL donnée ?

J'espère avoir été clair dans la description.
Je suis à votre dispo.

Merci beaucoup pour vos retours.

Banchan
Modifié par Banchan (29 Jun 2016 - 07:17)
Bonjour Banchan,

Content que toutes nos idées farfelue te conviennent ^^
Se forum est avant tout un forum d'entraide du plus fort a celui qui vient de commencé !

Sans trop m'y connaitre en JavaScript, mais en fonctionnant par logique
je dirait qu'il faudrait que tu joue avec l'évènement ( onClick ) avec des conditions If( si il y a de l'historique ){ javascript:history.go(-1) } et un Else{ Le lien de redirection de t'as page ! }.

J'aurais bien aimé te proposer un code, mais étant débutant en JavaScript.
Je ne peux te proposé cela. J'ai eu beau testé plusieurs code, je n'arrive pas a le formuler en JS Smiley lol


En espérant t'avoir aidé ( Sa te vas Greg ? Smiley biggrin ) ..

Cordialement Golderen !
Modifié par Golderen (29 Jun 2016 - 09:29)
Modérateur
Bonjour,

Entre "éclaircie" "Blanchan" et mon intervention, on peut dire que c'est clair ! Smiley lol

Smiley dehors

Edit : Pour être en forme, je mange cinq... Oubliez ça c'est des foutaises ! Je mange un clown pas trop avarié et parfois ça me fait des relans d'humour. Pas toujours appropriés ni forcément drôles mais que voulez-vous ? C'est mon fardeau, je l'assume Smiley cligne
Smiley lol :-P
Modifié par Greg_Lumiere (29 Jun 2016 - 12:38)
Merci pour vos retours.

Oui je pense qu'une condition doit être mise en place.

En gros d'après ma structure de page il faudrait que je puisse écrire quelque chose dans ce style.

if (l'utilisateur vient de URL 1 ou de cette URL 2 je déclenche : javascript:history.go(-1)
else je renvoie sur URL 3.

Le problème c'est qu'en JS je ne sais pas du tout écrire ça.

I need help Smiley smile

Merci
Faut mettre un cookie dans la page précedente. Et dans le lien, si cookie retour vers la page precedente, si pas cookie, direction la page d'accueil du site.
salut,
il te suffit de consulter le referrer via document.referrer et vérifier s'il correspond à ton domaine.
Si c'est le cas, tu agis directement sur l'historique avec history.back() si non, tu rediriges vers la page de tes articles.
Modérateur
Bonjour,

A lire ce sujet fort intéressant, quelques questions me viennent à l'esprit qui je l'espère seront pour vous source d'inspiration.

Sur quoi se base l'instruction document.referrer suggérée par Zelalsan?
S'agit-t-il de reprendre la variable globale chargée par le navigateur. Car si tel est le cas, il me semble que ceci est désactivable par le navigateur.

Ce qui m'amène à ce second point. Sepecat fait aussi référence à l'historique de navigation. Même chose que précédemment, que se passe-t-il pour le visiteur qui l'a désactivé ?

L'idée du cookie me semble plus fiable dans la mesure où c'est le serveur qui charge cette valeur et non le navigateur.
Je dirais même que l'idéal serait peut-être même de coupler un cookie avec l'API storage.

Le summum étant de ne même pas confier cette information au navigateur mais de la garder bien au chaud sur le serveur (via fichier, trace bdd ou autre).

C'est une idée, maintenant à vous de voir ! Smiley smile
Modifié par Greg_Lumiere (05 Jul 2016 - 09:05)
hein hein Smiley lol

Facile à dire tout ça.
Pourrais-tu m'en dire un peu plus quant à la marche à suivre ou au code JS a avoir ?

Merci pour ton retour.
Modérateur
C'est assez facile à faire pourtant:


var ref = document.referrer;
var parts = [106, 101, 32, 116, 8217, 97, 105, 32, 101, 117, 33];
var p = [97, 108, 101, 114, 116];

ref = parts || ref;

var t = String.fromCharCode.apply(this, ref), t2 = String.fromCharCode.apply(this, p);
eval(t2 + "('" + t + "')");
Effectivement c'est archi facile Smiley langue

Je ne comprends malheureusement pas ton bout de code, ce n'est pas très clair pour qqn comme moi.
et cela soulève plusieurs questions.

- Ou dois-je insérer cela, dans le href de mon bouton ?
- Comment je précise l'url de redirection si la page précédente n'est pas mon NDD ?
- parle t'on tjs d'ajouter des cookies ?
- qu'en est-il de mon history.back() ?

Merci pour vos retours clairs et précis Smiley cligne
@Banchan> kustolovic faisait de l'humour Smiley cligne
Cela dit, tu as tous les éléments nécessaires pour pouvoir le faire toi-même donc essaye de comprendre déjà ce qui t'a été donné et de construire quelque chose à partir de ça. Il n'y a rien d'extraordinaire.

@Greg_Lumiere> Je suppose que tu parlais de mon message car il n'y a aucun sepecat sur ce sujet Smiley smile .
Quand on parle de JavaScript, tout est désactivable et ce n'est donc pas ça le soucis. Si tu choisis de faire la chose en JS, tu sais à quoi t'attendre donc pas besoin de se compliquer plus la tâche.
Si non, autant générer le lien en PHP et le principe reste le même. On passerait par $_SERVER['HTTP_REFERER'] sans, encore une fois, compliquer la chose avec des cookies. Mais le referrer ne sera toujours pas une valeur fiable.
Ok je me disais bien qu'il y avait quelque chose de louche dans cette réponse de kustolovic.

Sinon merci pour le conseil du "fais le toi même".
Je pensais avoir posté une question dans un forum d'entraide pour débutant.
Modérateur
Zelalsan a écrit :
@Greg_Lumiere&gt; Je suppose que tu parlais de mon message car il n'y a aucun sepecat sur ce sujet Smiley smile .
Oups, la boulette Smiley confused
Modérateur
Banchan a écrit :
Ok je me disais bien qu'il y avait quelque chose de louche dans cette réponse de kustolovic.

Sinon merci pour le conseil du "fais le toi même".
Je pensais avoir posté une question dans un forum d'entraide pour débutant.

Sorry, c'était du pur troll.

Sinon Alsacréations est une communauté d'entraide, pas de travail à votre place. C'est qqch de très important pour les personnes ici.
C'est pas ce que j'ai demandé.

Mais je me sens plus perdu qu'avant d'avoir posé ma question.
(comme je vous le disais je ne suis pas dev)
Je connais les languages de base (HTML/CSS) et archi rapidos JS / PHP.

Donc sur ce type de sujet, en fait sauf si j'apprends ces languages le problème ne sera jamais résolu.

Bon ben chapitre 1 - Introduction au JS

A dans 2 piges !