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 :

Ouverture d'un fichier externe


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut Ouverture d'un fichier externe
    Bonjour le forum,
    J'ai cette ligne de code qui me permets de lire un fichier texte locale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     readTextFile("./files/" + sel_1_val + "-" + sel_2_val + ".txt");
    Je voudrais remplacer files par son adresse du type : https://www.monsite.fr/toto/files/fichier.txt
    Je n'arrive pas à trouver la bonne syntaxe...
    Merci à vous !

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    readTextFile ?

    Formidable, moi j'ai une fonction appelée LireFichierTexte, elle marche très bien, tu devrai t'en servir

    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     readTextFile("https://www.monsite.fr/toto/files/" + sel_1_val + "-" + sel_2_val + ".txt");
    Où est la difficulté ?

    Ensuite, si ça ne fonctionne pas, le problème vient de ta fonction readTextFile(), dont on ne sait rien (qui n'accepte peut-être pas les URL absolues).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Désolé je pensais avoir mis mon code complet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
        <script type="text/javascript">
                function catsel2(sel) {
                  //if (sel.value=="-1" ) return;
                  var opt=sel.getElementsByTagName("option" );
                  for (var i=0; i<opt.length; i++) {
                    var x=document.getElementById(opt[i].value);
                    if (x) x.style.display="none";
                  }
                  var cat = document.getElementById(sel.value);
                  if (cat) cat.style.display="block";
                }
                function readTextFile(file)
    {
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function ()
        {
            if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
                {
                    var allText = rawFile.responseText;
                    // alert(allText);
                    var c = document.getElementById( "cat");
                    c.style.display = "block";
                    c.innerHTML = allText;
                }
            }
        }
        rawFile.send(null);
    }
     
              </script>
     
      <script>
      function catsel(sel_id1,sel_id2) 
      {
              // on récupère les 2 choix
              var sel_1_val = document.getElementById( sel_id1 ).value;
              var sel_2_val = document.getElementById( sel_id2 ).value;
     
     
              // on masque tous les div de class="cat"
              cat_hide_all();
              readTextFile("./files/" + sel_1_val + "-" + sel_2_val + ".txt");
     
              // si les 2 choix sont faits
              if( sel_1_val !='' && sel_2_val !='' )
              {
                      // on affiche le bon div
                      var cat_to_show_id = 'cat-' + sel_1_val + '-' + sel_2_val; // de la forme : cat-2-C
                      var cat_to_show = document.getElementById( cat_to_show_id );
                      if (cat_to_show) cat_to_show.style.display = 'block';
              }
      }
      // masquer tous les div
      function cat_hide_all() 
      {
              var divs = document.querySelectorAll( '.cat' );
              divs.forEach(function(div) {
                      div.style.display = 'none';
              });
      }
      // ONLOAD : on masque tous les div de class="cat"
      window.onload = cat_hide_all;
      </script>
    Avec l'url directement dedans cela ne fonctionne pas, le fichier ne se charge pas

  5. #5
    Invité
    Invité(e)
    Par défaut
    Il s'agit du même domaine, ou tu essaies de lire un fichier sur un autre serveur ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    A la base le code a été concu sur mon ordi donc il fonctionne très bien.
    J'ai voulu le mettre sur mon server mais la ca ne fonctionnait pas, pourtant j'ai bien chargé les fichiers textes sur le server.

    Pour faire mes tests, je reste sur mon ordi en local et au lieu d'avoir "files/" je mets l'url du dossier file sur mon server.

  7. #7
    Invité
    Invité(e)
    Par défaut
    J'ai aussi fait des tests.

    Apparemment, le fait que le site soit en https bloque l'action au niveau de rawFile.send(null); :

    NetworkError: A network error occurred.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Merci d'avoir fait les tests, du coup comment puis je faire ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Essaie avec http:... (sans s)

    [EDIT] Pourtant, on trouve des exemples avec https...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    J'ai essayé mais ca ne fonctionne pas ^^

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tiens ?

    Ca fonctionne avec "https" sur Chrome, Edge et Opera.

    mais PAS sur Firefox...
    ... et à priori PAS sur Safari non plus (pas testé).

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    C'est bizarre, je sens le problème à la con venir oO

  13. #13
    Invité
    Invité(e)
    Par défaut
    OK.

    Sur Firefox :
    Blocage d’une requête multiorigines (Cross-Origin Request) :
    la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://www.xxx.fr/file.txt.
    Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.[En savoir plus]
    Ça fonctionne aussi sur Firefox.

    Par contre :
    • soit on est sur LE MEME site (la page appelante est appelée avec "https//www.monsite.com/.......")
    • soit il faut définir l’en-tête CORS « Access-Control-Allow-Origin » (à tester)


  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Ok ca fonctionne !
    Un grand merci !
    Le bug venait de là et je ne trouvez pas l'origine du problème.
    Ca fonctionne très bien sur pc par contre ca ne marche pas sur tablette et gsm. Cela vient de l'interprétation du javascript ?
    Je viens de faire un test, la page en html classique fonctionne sur tous les supports, mais quand je l'intègre à ma page wordpress il ne marche plus sur tablette et gsm, avez-vous une solution ?
    PS : pour l'intégration j'ai créé un fichier .js avec mon code que j'appelle via le fichier function.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function theme_js(){
     
     
    wp_enqueue_script( 'tarot',
    get_template_directory_uri() . '/js/monfichier.js',
    array() );
     
    }
     
    add_action( 'wp_footer', 'theme_js' );

Discussions similaires

  1. Action externe, ouverture d'un fichier
    Par gemallan dans le forum QlikView
    Réponses: 2
    Dernier message: 11/09/2014, 09h48
  2. PATH pour ouverture de fichiers externes
    Par bananiatutur dans le forum LabVIEW
    Réponses: 3
    Dernier message: 31/07/2014, 09h20
  3. [Toutes versions] ERROR 52 VBA, Ouverture d'un fichier sans l'ouvrir de source externe
    Par studying dans le forum Excel
    Réponses: 0
    Dernier message: 14/01/2013, 11h29
  4. Ouverture fichier externe et extraction du resultat
    Par anthonystaltaro dans le forum Général Python
    Réponses: 17
    Dernier message: 14/04/2009, 14h25
  5. Réponses: 2
    Dernier message: 03/09/2007, 23h06

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