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 :

reload.js ne marche pas sur apache


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut reload.js ne marche pas sur apache
    Salut,

    J'ai une page html qui contient des liens vers des fenêtres pop-up (window.open) qui permettent d'afficher des données. Ces fenêtres contiennent chacune un lien qui permet de fermer le pop-up en question et d'actualiser la fenêtre mère (window.opener). Ce lien est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="./reload.js"><img src="./close.gif" width="48" height="48" border="0"></a>
    En effet, ce lien est une image qui en cliquant dessus, invoque le script contenu dans le fichier reload.js. Ce script est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script language="javascript">
    window.opener.location.reload();
    setTimeout( "window.close();", 10 );
    </script>
    Tout ça est beau mais lorsque je clique sur l'image censée fermer le pop-up et actualiser la fenêtre mère, j'obtient un gros
    Internal Server Error
    et en consultant mon error.log, j'ai ce qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [error] [client 127.0.0.1] c:/easyphp1-7/cgi-bin/reload.js is not executable; ensure interpreted scripts have "#!" first line
    [error] [client 127.0.0.1] (2)No such file or directory: couldn't spawn child process: c:/easyphp1-7/cgi-bin/reload.js

    Est-ce que quelqu'un peut m'expliquer ce charabia, d'autant plus que lorsque j'utilise reload.js hors serveur, ça marche très bien.

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Un fichier .js est considéré comme une bibliothèque de méthodes javaScript. Tu ne peux pas utiliser le fichier en tant que tel, mais simplement importer le fichier (dans ton head) et utiliser les fonctions qui sont dedans dans la suite de ta page (il faut pour cela que tu encapsules ton code js dans des fonctions).

    Si ça marche sans serveur, c'est simplement que tu essayes avec IE, ça m'etonnerait bien que ça marche sous FF.....

    Fait un fichier .js de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function parentReload() {
      window.opener.location.reload(); 
      setTimeout( "window.close();", 10 );
    }
    Et utilises cette fonction, après avoir importé le fichier JS (regarde dans la FAQ si tu as des problèmes avec les fichiers .js)

  3. #3
    Membre actif Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Points : 216
    Points
    216
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Javascript(window.location.reload();)">
    pourquoi pas simplement ça ???

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    euh, comme tu peux le lire assez facilement dans son code, il mets en place un timeout permettant de fermer la pop-up, et il ne veux pas recharger la page en cours, mais la page parente....

  5. #5
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    Salut,

    Tout d'abord un grand merci pour votre aide.

    Voila ce que j'ai fais :

    j'ai modifier le fichier reload.js que j'ai appelé parentrealod.js, il contient ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function parentreload() { 
      window.opener.location.reload(); 
      setTimeout( "window.close();", 10 ); 
    }
    et j'ai aussi modifier la source du parent ainsi :

    - Appel du fichier parentreload.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script language="JavaScript" src="http://localhost/html_css/parentreload.js">
    </script>
    - Appel de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:parentreload();"</a>
    Résultat :
    Quand je clique sur le lien en question, rien ne se passe : erreur javascript dans la barre de statut et aucune erreur dans error.log d'apache.

    Pouvez vous SVP voir ce qui cloche car je commence à manquer de moyens .

    Merci.

  6. #6
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Euh, tout me parait bon. Il manque de façon assez flagrante un > dans la création de ton lien, mais c'est peut-être simplement dans le post....

    Sinon, ta méthode est la bonne.

  7. #7
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    Salut,

    Décidement je n'ai pas de chance, parce que je vous jure que ça ne marche pas. J'avoue que ça me dépasse et je trouve même pas ce que je dois tenter

    Concernant le '>' manquant, c'est une erreur de poste...

    MAYDE...

  8. #8
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    reload.js
    renomme le en .html!

  9. #9
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    Re-salut,

    j'ai essayé parentreload.html en changeant l'appel du script mais ça ne marche toujours pas et je crois que j'ai localiser la source du problème.

    En effet, je n'ai pas trouver utile de préciser que ma page mère est générée dynamiquement par un script cgi écrit en perl qui créer un page html faisant appel à des javascripts.

    Je viens de modifier mon lien qui fait appel à parentreload.js de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:;" onCLick="window.close();" onMouseOver="window.opener.location.reload();"><img src="http://localhost/sliced_images/close.gif" width="48" height="48" border="0"></a>
    en pensant actualiser la page mère lorsqu'on place la souris sur l'image et fermer le pop-up lorsqu'on clique dessus.

    Tous ça est beau, et lorsque j'ai survoler l'image en question avec la souris, j'ai obtenu le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Avertissement : expiration du délai pour cette page
     
    La page requise a été créée en utilisant les informations fournies dans un formulaire.
     
    Cette page n'est plus disponible. Par sécurité, Internet Explorer ne renvoie pas automatiquement les informations vous concernant. 
     
     
    Pour envoyer vos informations à nouveau et afficher cette page Web, cliquez sur le bouton Actualiser .
    C'est là que j'ai compris que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.opener.location.reload();
    pose un réel problème et que visiblement mon problème est un faux puisque je ne pourrai probablement pas le résoudre. (Problème de fond !!)

    Est ce quelqu'un aurait une solution ou dois-je abondonner l'idée tout court ?!!

    Merci.

  10. #10
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Ce problème est un problème lié à la méthode d'accès à ta page mère. tu as du acceder à cette page en méthode POST (après un formulaire très certainement). Et pour recharger cette page, IE t'envoies un message de sécurité t'informant que tes variables POST vont être renvoyées.

    A priori je ne connais pas de moyen de contourner cela (mais j'en aimerais bien un). Change la méthode d'accès à ta page en GET.....

    Mais sinon, je ne pense pas que le fait que ta pauvre fonction ne marche pas ait quelque chose à voir avec ça....

    Tu as essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:void(0);" onCLick="window.opener.location.reload();window.close();""><img src="http://localhost/sliced_images/close.gif" width="48" height="48" border="0"></a>
    ??

  11. #11
    Membre habitué Avatar de Leishmaniose
    Homme Profil pro
    Ingénieur Bio-industries
    Inscrit en
    Novembre 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Bio-industries
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 145
    Points : 141
    Points
    141
    Par défaut
    Salut,

    Un grand merci à denisC

    J'ai changer le POST en GET et j'ai utiliser "void(0)..." et ça marche.

    N'empêche que j'ai essayé avec l'appel de parentreload.js et le lien qui utilise la fonction contenu dans ce fichier, en appliquant la méthode GET et toujours rien. Je me demande ce qui cloche dans ce truc d'autant plus que ma page fait appel à un autre fichier.js de la même façon et ça marche très bien :

    Mais de toute façon ce problème est résolu. Encore merci à tous et surtout à denisC.

    @+

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

Discussions similaires

  1. DATEDIFF() qui ne marche pas sur une version 5.0.xx
    Par vallica dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/05/2006, 17h44
  2. keybd_event ne marche pas sur un jeu !
    Par seal3 dans le forum Windows
    Réponses: 5
    Dernier message: 24/03/2006, 16h28
  3. [VBA-E] mon code ne marche pas sur un autre PC
    Par yannph dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2006, 21h03
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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