L'interface URL représente un objet qui fournit des méthodes statiques utilisées pour créer des URL d'objet.

Lors de l'utilisation d'un agent utilisateur dans lequel aucun constructeur n'a encore été implémenté, il est possible d'accéder à un objet en utilisant les propriétés Window.URL (préfixées sur un navigateur basé sur Webkit tel que Window.webkitURL).

Note : Cette fonctionnalité est disponible via les Web Workers.

Utilisation

Le constructeur prend un paramètre url et un paramètre de base facultatif à utiliser comme base si le paramètre url est une URL relative :

const url = new URL('../cats', 'http://www.example.com/dogs');
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"

Les propriétés de l'URL peuvent être définies pour construire l'URL :

url.hash = 'tabby';
console.log(url.href); // "http://www.example.com/cats#tabby"

Les URL seront encodées selon la norme RFC 3986:

url.pathname = 'démonstration.html';
console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"

L'interface URLSearchParams  peut être utilisée pour construire et manipuler la chaîne de requête de l'URL.

Pour obtenir les paramètres de recherche à partir de l'URL de la fenêtre en cours :

// https://some.site/?id=123
var parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // 123

La méthode stringifier de l' URL est la propriété href , ainsi le constructeur peut être utilisé pour normaliser et encoder directement une URL :

const response = await fetch(new URL('http://www.example.com/démonstration.html'));

Constructeur

URL()
Crée et retourne un objet URL  composé des paramètres donnés.

Propriétés

URL.hash
Est une DOMString (chaîne de caractères) contenant un '#' suivi de l'identifiant du fragment de l'URL.
URL.host
Est une DOMString (chaîne de caractères) contenant l'hôte, c'est-à-dire le hostname (nom d'hôte), ':'et le port de l'URL.
URL.hostname
Est une DOMString (chaîne de caractères) contenant le domaine de l'URL.
URL.href
Est une DOMString (chaîne de caractères) contenant l'URL entière.
URL.origin Lecture seule
Retourne une DOMString (chaîne de caractères) contenant l'origine de l'URL, c'est son schéma, son domaine et son port .
URL.password
Est une DOMString (chaîne de caractères) contenant le mot de passe spécifié avant le nom du domaine.
URL.pathname
Est une DOMString (chaîne de caractères) contenant une barre oblique initiale '/'suivie du chemin de l'URL.
URL.port
Est une DOMString (chaîne de caractères) contenant le numéro de port de l'URL.
URL.protocol
Est une DOMString (chaîne de caractères) contenant le schéma du protocole de l'URL, y compris le final ':'.
URL.search
Est une DOMString (chaîne de caractères) contenant un '?' suivi par les paramètres de l'URL.
URL.searchParams
Retourne un objet URLSearchParams  permettant d'accéder aux arguments de requête GET contenus dans l'URL.
URL.username
Est une DOMString (chaîne de caractères) contenant le nom d'utilisateur spécifié avant le nom de domaine.

Méthodes

L'interface URL implémente les méthodes définies dans URLUtils.

URLUtils.toString()
Retourne une DOMString (chaîne de caractères) contenant l'URL entière. C'est un synonyme de URLUtils.href, mais il ne peut pas être utilisé pour modifier la valeur.
URL.toJSON() [disponible depuis FireFox v54]
Retourne une DOMString   (chaîne de caractères) contenant l'URL entière. Il retourne la même chaîne que la propriété href .

Méthodes statiques

URL.createObjectURL()
Retourne une DOMString (chaîne de caractères) contenant un "blob URL" unique ; c'est une URL avec blob : son schéma suivi d'une chaîne opaque identifiant de manière unique l'objet dans le navigateur.
URL.revokeObjectURL()
Révoque un objet URL précédemment créé avec URL.createObjectURL ().

Spécifications

Spécification Statut Commentaire
File API
La définition de 'URL' dans cette spécification.
Version de travail Ajoute les méthodes statiques URL.createObjectURL() et URL.revokeObjectURL().
URL
La définition de 'API' dans cette spécification.
Standard évolutif Définition initiale (implémente URLUtils).

Browser compatibility

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Fonctionnalités Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 8.0[2]
32
In Development[5] 4.0 (2.0)[1][3][6]
19.0 (19.0)
Pas de support[4] 15.0[2]
19
6.0[2]
7.0
username, password, and origin 52 ? 26.0 (26.0) ? 19 (Oui)
searchParams 51 ? 29.0 (29.0) ? 36 Pas de support
toJSON ? ? 54 (54) ? ? ?
 
Fonctionnalités Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 4[2]
4.4
8.0[2]
32
14.0 (14.0)[1][3][6]
19.0 (19.0)
(Oui) 15.0[2] 6.0[2]
username, password, and origin 52 52 26.0 (26.0) ? ? (Oui)
searchParams 51 51 29.0 (29.0) ? ? ?
 

[1] De Gecko 2 (Firefox 4) à Gecko 18 inclus, Gecko a mis en oeuvre cette interface avec le type interne non-standard nsIDOMMozURLProperty . Comme le seul accès à ce type d'objet était à travers window.URL, en pratique, cela ne faisait aucune différence.

[2] Cette fonctionnalité est implémentée sous le nom non-standard webkitURL.

[3] Pour Firefox, à utiliser à partir du code chrome, portée JSM et Bootstrap, vous devez l'importer comme ceci :

Cu.importGlobalProperties(['URL']);

URL est disponible pour les portées du "Worker" .

[4] Depuis IE11, l'instanciation de nouveaux objets URL n'est pas prise en charge, c'est-à-dire que la nouvelle URL() ne fonctionne pas.

[5] Edge en développement : voir https://developer.microsoft.com/en-us/microsoft-edge/platform/status/urlapi/  et https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6263638-url-api.

[6] Firefox a un bogue dans lequel les apostrophes contenues dans les URL s'échappent lorsqu'elles sont accessibles par les URL des API  (bug 1386683). Cela a été corrigé à partir de Firefox 57 .

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : loella16, fscholz
 Dernière mise à jour par : loella16,