Bonjour,
Je voudrais savoir s'il est possible de tester la validité d'une URL en javascript.
Quand l'utilisateur entre une url dans un champs, il aurait la possibilité d'appuyer sur un bouton pour tester si le lien existe.
Merci d'avance !
Bonjour,
Je voudrais savoir s'il est possible de tester la validité d'une URL en javascript.
Quand l'utilisateur entre une url dans un champs, il aurait la possibilité d'appuyer sur un bouton pour tester si le lien existe.
Merci d'avance !
Dernière modification par Invité ; 13/03/2008 à 15h24.
eventuellement lancer un ajax et tester le readystatus ou le responsetext ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
J'aurais peut être du ajouter que je suis un méga débutant PHP...
[edit]
hum hum.... méga débutant javascript.... hum hum.... je sais pas ce que j'ai aujourd'hui...
Dernière modification par Invité ; 13/03/2008 à 14h38.
ça tombe bien c'est du javascript ^^
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Je crois pas que tu puisses appeler une url autre que sur ton site en Ajax
Voici un proxy php pour "router" ta requête XHR (class_http.php + proxy.php) en mode cross domain
et voici le code JS :Edit : ajoute xhr.abort(); dans le if(xhr.status==404){} c'est plus propre
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 function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try{xhr = new ActiveXObject("Msxml2.XMLHTTP");} catch(e){try{xhr = new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}} }else{ // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHttpRequest..."); xhr = false; } return xhr; } function testURL(url){ var xhr=getXhr(); xhr.open("GET", 'proxy.php?url='url, true); xhr.onreadystatechange = function(){ if(xhr.status==404){ //404 Error alert(url+' is down'); } } xhr.send(data); }![]()
je crois qu'il est pas possible de lancer une requête ajax sur un autre serveur.
Mais indirectement, tu peux créer un script php qui vérifie la validité de l'url et lancer la requête ajax sur ce script.
[edit]oups le temps que j'écrive DoubleU l'a déjà dit[/edit]
Vous pourriez me donner le lien vers un tuto pour lancer une requête ajax ? Je dois avouer que c'est un peu du chinois pour moi...
Le format d'une URL est assez simple et standardisé :
PROTOCOLE://USER:PASSWORD@HOSTNAME:PORT/RESOURCE
PROTOCOLE peut être n'importe quel protocole : http, https, ftp, ftps, irc, etc. Il doit cependant être connu du client et du serveur.
HOSTNAME est le nom du serveur vers lequel pointer (ex: www.google.com).
PORT est le port du serveur auquel l'application doit se connecter (ex: 80, 23, 165, ...)
RESOURCE est le lien vers la ressource du serveur.
USER est utilisé en cas de besoin d'identification.
PASSWORD est utilisé en cas de besoin d'identification.
Deux éléments sont réellement obligatoire dedans : PROTOCOLE (pour dire comment on parle) et HOSTNAME (pour dire à qui on parle). Le reste est assez facultatif, donc.
Typiquement, une URL peut être résolue par la regex suivante :
Pourquoi utiliser le serveur quand le client a déjà tout ce qu'il faut ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 var protocole = "[a-z]+"; var user = "[a-zA-Z0-9_-]+"; var password = "[a-zA-Z0-9_-]+"; var hostname = "[a-z0-9-\.]+"; var port = "[0-9]+"; var resource = ".*"; var regex = new Regex(protocole + "://("+user+"(:"+password+")?@)?" + hostname + "(:"+port+")?" + "(/"+resource+")?"); alert(regex.test(monUrl));![]()
Partager