IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Redirection par header refresh + meta refresh + javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 15
    Points
    15
    Par défaut Redirection par header refresh + meta refresh + javascript
    bonjour tout le monde,
    j'ai un probleme de redirection avec une fonction header refresh contenant un javascript:history.back(1) et une meta avec la meme fonction javascript ...

    je m'explique, sur mon site j'avais mis des header partout, je programme pour opera donc tout fonctionne, quand je passe a firefox et internet explorer ca marche pas, je verifie mon code, je teste sur safari, chrome et maxthon, aucun probleme.

    donc je me suis dis que j'allais ajouter une meta refresh avec la fonction javascript:history.back(1) (donc sur la meme page j'ai une meta refresh et un header refresh avec chacun la fonction javascript:history.back(1)) au cas où le header ne fonctionne pas.

    le tout fonctionne sur les autres navigateurs mais toujours pas sur FF et IE

    les header refresh et les meta refresh avec une url fixe (index.php par exemple) fonctionnent sur FF et IE, mais pas avec la fonction javascript:history.back(1).

    et quand je clique sur un lien "a href" avec javascript:history.back(1)
    sur FF et IE ca fonctionne

    je vous mets les 2 fonctions telles que je les utilises dans mon code

    // au début de mon code, juste apres session_start()
    header("refresh:5 ; url=javascript:history.back(1)");

    // dans le head de mon code html
    <meta http-equiv="refresh" content="3; url=javascript:history.back(1)" />

    sur certains forums j'ai lu que le header refresh avec la fonction javascript ne fonctionnait pas puisque le php est executé sur le serveur, dans ce cas comment expliquer que cela fonctionne partout sauf sur IE et FF !?

    voila, je vous dis merci d'avance et a très bientot j'espere ...

    ps : j'ai cerché un peu partout sur le net et sur des forums et j'ai pas trouvé ce qu'il me fallait, c'est peut etre la fatigue mais soyez indulgent et ne me balancez pas des liens style : "www.google.fr" svp.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par maxland Voir le message
    sur certains forums j'ai lu que le header refresh avec la fonction javascript ne fonctionnait pas puisque le php est executé sur le serveur
    Ouais ben c'est fumeux comme explication. C'est vrai que le php est exécuté sur le serveur et qu'il n'exécute pas le JavaScript, mais ça n'a rien à voir avec la question. Non, C'est juste que rien au monde ne te garantit qu'une url javascript: fonctionne avec le header refresh, et apparemment ce n'est pas le cas pour IE et Firefox.

    De toute façon il y a déjà un mécanisme pour faire ça en JavaScript : setTimeout()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("history.back(1);", 3000);

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    N'oublie pas non plus que la méthode back n'attend pas de paramètre.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    pouu ! ca marche de la bombe !

    pourtant j'ai l'impression d'etre passé a coté tres betement

    enfin, ca marche impeccable, merci les gars !

    par contre, apres avoir vu une explication sur la fonction history.back(),
    il est vrai qu'elle n'attend pas de parametre alors pourquoi certaines personnes mettent un 1 ou 0 ou meme -1 j'ai vu parfois ?

    thelvin l'a meme fait dans ce topic ...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par maxland Voir le message
    thelvin l'a meme fait dans ce topic ...
    J'ai juste recopié ton code pour l'appeler "de la bonne façon" .

    Officiellement, history.back() ne prend pas de paramètre, mais il me semble que la plupart des navigateurs acceptent un entier pour indiquer de combien de pages on recule. Je ne sais pas ce que signifie le 0 ou le -1. Je ne sais pas non plus à quoi ça sert de reculer de plus d'une page.

    Mais par défaut, je considérais que tu étais sûr que c'est ce que tu veux, vu que le problème était ailleurs.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est la méthode go qui prend un entier (positif ou négatif) en paramètre.
    Du coup :
    history.go(0) est équivalent à location.reload(),
    history.go(-1) équivalent à history.back() et
    history.go(1) équivalent à history.forward().

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    ok j'ai compris cette fois, merci encore les gars !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/04/2013, 11h11
  2. [HTML] Meta Refresh ne marche pas
    Par ryan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 16/11/2010, 16h47
  3. Redirections par header sur serveur IIS ne fonctionne pas
    Par Abac_Angelique dans le forum Langage
    Réponses: 3
    Dernier message: 02/02/2009, 13h04
  4. Réponses: 4
    Dernier message: 19/03/2008, 06h33
  5. [IE7] Utilisation du meta REFRESH
    Par cassoulet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/12/2006, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo