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

Résolu/Fermé
Fogiel Messages postés 54 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 25 juillet 2022 - 15 mai 2022 à 19:24
Fogiel Messages postés 54 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 25 juillet 2022 - 15 mai 2022 à 21:55
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
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 mai 2022 à 19:58
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
Fogiel Messages postés 54 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 25 juillet 2022 219
15 mai 2022 à 21:31
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > Fogiel Messages postés 54 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 25 juillet 2022
15 mai 2022 à 21:50
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
Fogiel Messages postés 54 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 25 juillet 2022 219
15 mai 2022 à 21:55
Merci beaucoup, oui je vais me renseigner à ce sujet, j'aime bien savoir comment ça fonctionne ! :p
0