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 :

Parser une url, quelle méthode compatible tous navigateurs ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut Parser une url, quelle méthode compatible tous navigateurs ?
    Bonjour à tous,

    Je n'arrive pas à formatter une url pour exploiter certains de ces attributs avec la méthode new URL() et pouvoir extraire que la portion dont a besoin mon controller et le fetch relié...

    Par exemple sur une url complète "https://127.0.0.1:8000/admin/ecritures/liste-factures?page=2" je n'ai besoin que de la partie "/admin/ecritures/liste-factures?page=2".

    Mon listener me renvoie bien une url correcte et complète à chaque fois, mais comment faire pour qu'elle soit au bon format lorsqu'on utilise new URL() puisque celui-ci ne cesse de me dire que l'url rentrée n'est pas correcte, pourtant en console elle contient bien les guillemets, ce n'est pas la bonne méthode ?

    Merci d'avance pour vos lumières

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        //filtrage pour pagination
        pagination.forEach((el) => {
          el.addEventListener("click", (e) => {
            e.preventDefault();
     
            const urlPagination = e.target.getAttribute("href").toString();
            const stringUrl = new URL('"' + urlPagination + '"');
            console.log(stringUrl.pathname);
          });
        });

  2. #2
    Membre chevronné
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 387
    Par défaut
    Bonjour,

    Les guillemets sont inutile, urlPagination est déjà un variable de type String.

    Il faut faire la différence entre
    une chaine littérale et une variable de type chaine caractère.

    https://c.developpez.com/cours/berna...gne/node18.php

    https://developer.mozilla.org/fr/doc...aract%C3%A8res

    Les valeurs littérales pour les chaînes de caractères peuvent être indiquées avec des simples quotes ('), des doubles quotes (") ou encore par des accents graves (`).
    Bonne journée.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Bonjour unanonyme, merci d'avoir répondu

    Si je retire les guillemets rien ne change j'ai toujours le message d'erreur
    "Uncaught TypeError: Failed to construct 'URL': Invalid URL at HTMLAnchorElement" dans edge et "Uncaught TypeError: URL constructor: /admin/ecritures/liste-factures?page=2 is not a valid URL"
    dans firefox, il me semblait que c'était dû au fait que les guillemets sont obligatoires dans la fonction... Bref ça marche toujours pas

  4. #4
    Membre chevronné
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 387
    Par défaut
    Bonjour,

    prenez le temps de bien lire la doc, que j'ai oublié de lier précédemment,

    https://developer.mozilla.org/fr/docs/Web/API/URL/URL

    Vous posterez ensuite votre compréhension et votre solution.

    Bonne journée.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Alors quant à la lecture de la documentation, merci mais je l'avais déjà fait et je l'ai trouvée très mal faite, d'autre part, sauf étourderie de ma part en quoi cela s'applique à mon problème ?

    La variable urlPagination renvoie bien une url correcte et si je la mets en paramètre (new URL(urlPagination)) j'obtiens les erreurs décrites, au début je pensais à un manque de guillemets mais vous m'avez signalé que cela n'était pas nécessaire, donc il doit manquer quelque chose ou bien un paramètre (base) à rajouter ?

    Je ne percute pas sur ce coup là

  6. #6
    Membre chevronné
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 387
    Par défaut
    Bonjour,

    C'est bien le sujet. Vous semblez manquer de concentration, ou vous allez trop vite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    new URL('/admin/ecritures/liste-factures?page=2');
    Uncaught TypeError: URL constructor: /admin/ecritures/liste-factures?page=2 is not a valid URL.
        <anonymous> debugger eval code:1
    debugger eval code:1:1
    new URL('/admin/ecritures/liste-factures?page=2', "http://anywhere.com/");
    URL { href: "http://anywhere.com/admin/ecritures/liste-factures?page=2", origin: "http://anywhere.com", protocol: "http:", username: "", password: "", host: "anywhere.com", hostname: "anywhere.com", port: "", pathname: "/admin/ecritures/liste-factures", search: "?page=2" }
    La documentation fourni un tas d'exemple,
    notamment celui ci qui semble fort à propos.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var i = new URL("/en-US/docs", ""); // Déclenche une exception TypeError car '' n'est pas une URL valide
    Finalement, cette doc ne vous plaît peut être pas,
    il faudra pourtant dépasser votre goût personnel pour apprendre à faire avec,
    au mieux.

    Bonne journée.

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

Discussions similaires

  1. Rajouter session /cookie sur une vraie popunder compatible tous navigateurs
    Par loupiloop dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/09/2012, 10h06
  2. Parser une url dans un string au format texte
    Par andromeda dans le forum C#
    Réponses: 2
    Dernier message: 02/02/2009, 04h16
  3. Rome RSS: j'arrive pas à parser une url xml
    Par amine84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/12/2007, 13h27
  4. parser une url relative
    Par yule dans le forum Langage
    Réponses: 5
    Dernier message: 11/03/2006, 09h47
  5. Parser une URL
    Par pekka77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2005, 12h34

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