[HTML] Récupérer url courante

Résolu/Fermé
Utilisateur anonyme - 14 janv. 2009 à 21:41
 toobi - 16 août 2013 à 11:14
Bonjour,

Dans une page web, j'aimerais écrire un lien dont l'url contient l'url courante, comment puis-je faire?

Exemple:
L'url courante est "page01.html".
J'aimerais pouvoir écrire un lien qui pointe vers "sortie.php?u=page01.html"

N'hésitez pas à poser des questions si je ne suis pas clair...

Merci d'avance :)

16 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
20 janv. 2009 à 22:38
bonsoir peut etre encore plus simple...
dans le head

<script language=javascript>
var url= document.URL;
</script>

et dans le body

<script language=javascript>
alert('la page en cours est celle ci '+ url);
</script>
5
Utilisateur anonyme
20 janv. 2009 à 22:45
Désolé, mais ça ne marche pas non plus... :S
0
tip top ! merci lewis34
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 janv. 2009 à 19:53
et hop, un exemple !
<script type="text/javascript">
function printFileName()
{
	var lmt = document.getElementById("fichier");
	var href = window.location.href;
	var tmpArray = href.split('/');
	var fichier = tmpArray[tmpArray.length - 1];

	lmt.innerHTML = 'Ce fichier est nomm&eacute; <strong>'+fichier+'</strong>.';
}

if (document.getElementById && document.createTextNode) {
	if(window.addEventListener)
	{
		window.addEventListener('load', printFileName, false);
	}
	else if(window.attachEvent)
	{
		window.attachEvent('onload', printFileName);
	}
}
</script>

le code est à placer dans le HTML, de préférence dans le <head> sinon dans le <body>, ça doit marcher !
1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
26 janv. 2009 à 12:11
salut,

essaie avec celui-là :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

ou celui-là :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	   "http://www.w3.org/TR/html4/loose.dtd">


plus d'explications, et là.
1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 janv. 2009 à 21:49
salut,

en PHP :
$_SERVER['REQUEST_URI']

mais regarde le manuel pour savoir exactement quoi prendre.
0
Utilisateur anonyme
14 janv. 2009 à 21:50
Merci pour la variable, mais comment insérer du php dans un lien écrit dans une balise html?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 janv. 2009 à 21:54
comme tu parles de "sortie.php" je pensais que tu codais en PHP.

le plus simple est de renommer ton fichier en ".php" (si ton serveur l'interprète) et ensuite de simplement glisser le code PHP dans le code HTML.

par exemple dans un lien :
<a href="<?php echo $_SERVER['REQUEST_URI']; ?>">Sortie</a>
0
Utilisateur anonyme
14 janv. 2009 à 21:58
Impossible, je ne peux pas modifier le codage de la page... (Modèle de blog)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 janv. 2009 à 22:03
donc ce sera du Javascript et le DOM, il faut regarder du côté de window.location.

mais il va falloir déduire le nom de la page du reste de l'URL puis l'ajouter au lien.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
14 janv. 2009 à 22:18
peux-tu mettre du javascript dans tes pages déjà ?
0
Utilisateur anonyme
15 janv. 2009 à 17:07
Oui je peux mettre du javascript dans la page, par contre je n'ai pas la moindre notion dans ce langage, est-ce que vous pourriez m'expliquer comment je dois faire...? Merci :$
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 janv. 2009 à 19:29
salut,

c'est ce que Thebishop (désolé pour les majuscules mais c'est trop long…) allait faire (merci à lui d'avoir pris la suite !) mais il préférait à raison vérifier avant !

je relis la discussion et j'essaie de te bricoler quelque chose.
0
Utilisateur anonyme
20 janv. 2009 à 22:19
Merci pour ton aide, mais lorsque j'insère le script dans le body, rien ne s'affiche... :(
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 janv. 2009 à 22:26
as-tu essayé dans le <head> ?
0
Utilisateur anonyme
20 janv. 2009 à 22:36
Oui voilà, je viens d'essayer, mais le serveur me renvoie un message d'erreur:

Votre modèle ne peut pas être analysé, car sa structure n'est pas conforme. Vérifiez que tous les éléments XML sont bien fermés.
Message d'erreur XML : The entity name must immediately follow the '&' in the entity reference.

(il s'agit d'un blog, je n'ai pas accès à la totalité du code source)

Je suppose qu'il s'agit de cette ligne:

if (document.getElementById && document.createTextNode) {

et des "&" qui s'y trouvent...?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 janv. 2009 à 22:50
ton serveur analyse le code ?
c'est génial !
-:o)

en tout cas c'est normal, JS n'est pas conforme à XML, il faudrait remplacer les & par &amp; mais le JS ne fonctionnerait plus…

donc tu peux, soit ajouter des balises CDATA :
<script type="text/javascript">
<![cdata[ 
function printFileName()
{
	var lmt = document.getElementById("fichier");
	var href = window.location.href;
	var tmpArray = href.split('/');
	var fichier = tmpArray[tmpArray.length - 1];

	lmt.innerHTML = 'Ce fichier est nomm&eacute; <strong>'+fichier+'</strong>.';
}

if (document.getElementById && document.createTextNode) {
	if(window.addEventListener)
	{
		window.addEventListener('load', printFileName, false);
	}
	else if(window.attachEvent)
	{
		window.attachEvent('onload', printFileName);
	}
}
]]> 
</script>

soit mettre le premier code dans un fichier externe que tu appelles avec une balise <script> dans le <head> :
<script type="text/javascript" src="filename.js"></script>

dans ce cas, le fichier serait nommé "filename.js" et serait enregistré dans le même dossier que le fichier appelant.
0
Utilisateur anonyme
21 janv. 2009 à 22:51
Alors. J'ai éliminé d'office la deuxième solution puisque je n'ai pas la possibilité de placer des fichiers sur le serveur.
Je teste la première, message d'erreur:
Impossible d'accepter votre texte HTML: Tags cannot enclose tags ![cdata[ function printFileName() { var lmt ="document.getElementById(fichier); var" href="window.location.href; var" tmpArray="href.split('/'); var" fichier="tmpArray[tmpArray.length - 1]; " lmt.innerHTML="'Ce fichier est nommé <strong"

Je peux ignorer l'avertissement, mais le script ne marche quand même pas...
Désolé de te causer autant de soucis :$
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
22 janv. 2009 à 09:05
salut,

et je suppose que tu ne peux pas changer le DTD de ton fichier ?
0
Utilisateur anonyme
22 janv. 2009 à 18:13
Le...?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
23 janv. 2009 à 11:08
salut,

montre nous la première ligne de ton fichier HTML, qui doit contenir "DTD".
0
Utilisateur anonyme
25 janv. 2009 à 11:57
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
0