Comment dire en Javascript if "le lien n'existe pas" ?

Résolu
Fogiel Messages postés 59 Statut Membre -  
Fogiel Messages postés 59 Statut Membre -
Bonjour,

Je suis bloqué en javascript, je souhaite mettre un
if (url doesnt exist){
        location.replace("http://AutrePage.html");}

Pour expliquer avec un peu plus de details, j'ai un input sur ma page, et un bouton OK. Quand je rentre un article dans mon input (exemple : g6584) ça m'ouvre la page de l'article http://...g6584.html
Le but ici c'est : si l'article entré n'existe pas (parce que je n'ai pas encore créé la page de cet article) --> afficher une autre page à la place (une page ou j'explique que l'article n'existe pas encore).

Je ne souhaite pas utiliser de .htaccess car mon site est offline donc pas de php

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour
    Tu pourrais faire un appel Ajax sur cette page pour voir si elle répond.
    Ou éventuellement, utiliser la librairie fetch de JavaScript.
    0
    1. Fogiel Messages postés 59 Statut Membre 220
       
      Je ne connais ni l'un ni l'autre :)

      il n'y a pas tout simplement une ligne de javascript qui peut faire ce que je veux ?
      du type :
      var url = 'C:/Users/xxx/Documents/xxx/articles/' + document.getElementById('reference').value + '.html';
      if (url == null){
        location.replace('C:/Users/xxx/Documents/xxx/articles/'404.html');}


      ?? ou un truc du genre parce que == null ça ne fonctionne pas :/
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > Fogiel Messages postés 59 Statut Membre
         
        Ton url n'est pas vide ni null ... puisque tu la fais débuter par : 'C:/Users/xxx/Documents/xxx/articles/'
        et une chaine n'est jamais null ...
        Donc normal que ça ne marche pas.
        Si tu veux t'assurer que ton url existe ( et donc permet d'afficher ta page) .. la seule solution c'est celle que je t'ai indiqué.
        Ou alors, utiliser un langage serveur ( comme du php par exemple ..) et là, oui, tu auras une instruction genre if file_exists ..
        Mais voila .. en javascript .. ça passe par de l'ajax ...

        Je vais être sympa .. je vais te donner le code qui correspond ( et que j'ai trouvé en 3 secondes sur google..)
        function file_exists(filename) {
            fetch(filename).then(function(response) {
                if (!response.ok) { throw Error(); }
                return response;
            }).then(function(response) {
                    console.log("true");
                    return true;
            }).catch(function(error) {
                    console.log("false");
                    return false;
            });
        }
        


        ce qui devrait te permettre de faire un truc du genre
        if(file_exists(url)){
          location.replace('./articles/'404.html');
        }
        


        NB: Evite de mettre le chemin en absolu à partir de ton disque C: .. sinon tu risques d'avoir des soucis le jours où tu voudras utiliser tes pages sur un autre ordi ..
        A la place, utilises le chemin relatif.
        (si tu ne sais pas ce que c'est .. je t'invite avant de poursuivre ton dev de te former la dessus ! )
        1
  2. Fogiel Messages postés 59 Statut Membre 220
     
    Merci beaucoup, oui je vais me renseigner à ce sujet, j'aime bien savoir comment ça fonctionne ! :p
    0