Redirection javascript et parametre URL

Fermé
vitaly - 8 mars 2012 à 14:44
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 - 10 mars 2012 à 10:15
Bonjour,

Je travail sur un site en HTML avec du javascript, pour rediriger l'internaute vers une page précise, j'utilise ce code :

<script type="text/javascript">

document.location.replace("http://www.url1.com");

</script>


Maintenant, imaginons que l'URL de navigation actuelle soit http://www.toto.fr?url=http://www.test.fr

Comment est-ce que je peux faire pour rediriger l'internaute en récupérant le paramètre en javascript pour que ça renvoie l'internaute sur http://www.test.fr

Merci pour votre aide !

5 réponses

nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
Modifié par nEm3sis le 9/03/2012 à 06:19
yop, voici un petit code (javascript uniquement) tout simple qui j'espère te conviendra
function parseGetParams() {  
 var $_GET = {};  
 var params = location.search.substring(1).split('&');  
 for (var i = 0; i < params.length; ++i) {  
  var param = params[i].split('=');  
  $_GET[param[0]] = param[1];  
 }  
 return $_GET;  
}  

var $_GET = parseGetParams();  
alert($_GET.url);  
alert($_GET['url']);
1
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
9 mars 2012 à 09:40
Merci ça a l'ai de fonctionner, seulement le code :
document.location.replace($_GET['url']);

renvoie vers http://www.toto.fr/http://www.test.fr et pas vers http://www.test.fr

Que faire ?
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 09:57
Et $_GET.url ? Que donnent les alert de nEm3sis ?
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
Modifié par Vitaly58 le 9/03/2012 à 12:19
les alertes donnent http//www.test.fr

J'ai essayé avec $_GET.url et ça redirige encore vers http://www.toto.fr/http://www.test.fr
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
Modifié par nEm3sis le 9/03/2012 à 15:21
$_GET.url et $_GET['url'] sont strictement la même chose au fait (c'est juste 2 manière d'accéder à la valeur) donc utilise celle que tu préfères

par contre c'est bizarre que ça redirige vers http://www.test.fr' target='_blank'>http://www.toto.fr/http://www.test.fr
quand je teste ça me redirige bien vers la bonne page

aurait tu une page d'exemple à montrer ?
que je puisse voir quel est le problème
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
Modifié par Vitaly58 le 9/03/2012 à 22:11
Oui, ça fonctionne ! J'avais un bout de code qui faisait "court circuit". Merci beaucoup !

Code qui marche :

<script type="text/javascript">  

function parseGetParams() {    
 var $_GET = {};    
 var params = location.search.substring(1).split('&');    
 for (var i = 0; i < params.length; ++i) {    
  var param = params[i].split('=');    
  $_GET[param[0]] = param[1];    
 }    
 return $_GET;    
}    

var $_GET = parseGetParams();    

alert($_GET['url']);  

document.location.replace($_GET.url);  

</script>


Par contre maintenant que ça fonctionne, je voudrais que le code javascript ne se lance uniquement si le paramètre url= est présent dans l'adresse. C'est à dire qu'il ne se déclenche pas si l'url est : https://www.toto.fr/ par contre il se déclenche si l'url est : https://www.toto.fr/?url=http%3A%2F%2Fwww.test.fr

Comment faire ?
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 16:59
Bonjour,
C'est obligé que ce soit en javascript ? Pas de petit php tout simple ? Ou même de html tout simple ?
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
8 mars 2012 à 17:23
Oui pourquoi pas, si ça fonctionne.
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
8 mars 2012 à 17:30
J'ai essayé un truc du genre

<script type="text/javascript">

var toto = <?php echo $_GET['url'] ?>

document.location.replace(toto);

</script>


Mais ça redirige vers https://www.toto.fr/?url=http%3A%2F%2Fwww.test.fr et pas vers http://www.test.fr
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 17:56
C'est toi qui a mis "url=" ?
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
8 mars 2012 à 18:53
oui, je peux mettre ce que je veux. Je peux même mettre https://www.toto.fr/?http://www_test_fr
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 19:01
Change alors en newurl=... (par exemple)
$_GET['url'] est une commande déjà réservée par défaut.
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 17:29
Comment veux-tu rediriger l'internaute ? Quand il clique sur un lien ?
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
8 mars 2012 à 17:34
En fait, quand il clique sur un lien, il y a une image intersticielle qui s'ouvre. Lorsqu'il la ferme, je voudrais que ça le renvoie vers une page (le paramètre).

ça fonctionne sans paramètre avec :
<script type="text/javascript">
...
document.location.replace("http://www.url1.com");
...
</script>


Et je n'arrive pas à récupérer le paramètre de l'URL (https://www.toto.fr/?url=http%3A%2F%2Fwww.test.fr ) pour rediriger l'internaute vers http://www.test.fr
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 12:25
Bon alors, j'ai une idée pas propre du tout...

Tu as ça : https://www.toto.fr/?url=http%3A%2F%2Fwww.test.fr on est d'accord ?
Et donc, je pensais faire un split de ce String avec 'url=' comme séparateur. Et tu prends la deuxième valeur du tableau fourni...

Mais c'est pas propre du tout > <
0
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
9 mars 2012 à 12:34
Eventuellement, je peux avoir ça : https://www.toto.fr/?http://www_test_fr avec ? comme séparateur.

N'y a-t-il pas la possibilité d'obtenir l'inverse de document.location.pathname qui me donne comme résultat l'URL complète sans les paramètres c'est à dire : https://www.toto.fr/
0

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

Posez votre question
Vitaly58 Messages postés 43 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 15 novembre 2012 19
9 mars 2012 à 13:22
Avec ce code on y est presque :

<script type="text/javascript">

function parseGetParams() {  
 var $_GET = {};  
 var params = location.search.substring(1).split('&');  
 for (var i = 0; i < params.length; ++i) {  
  var param = params[i].split('=');  
  $_GET[param[0]] = param[1];  
 }  
 return $_GET;  
}  

var $_GET = parseGetParams();  

alert($_GET['url']);

document.location.replace($_GET.url);

</script>



Sauf que ça renvoie sur http://www.toto.fr/http://www.test.fr et pas vers http://www.test.fr

(l'url de la page d'origine étant https://www.toto.fr/?url=http://www.test.fr )
0