Redirection javascript et parametre URL

vitaly -  
Vitaly58 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

5 réponses

nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
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   Statut Membre Dernière intervention   19
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Et $_GET.url ? Que donnent les alert de nEm3sis ?
0
Vitaly58 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   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   Statut Membre Dernière intervention   113
 
$_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   Statut Membre Dernière intervention   19
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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   Statut Membre Dernière intervention   19
 
Oui pourquoi pas, si ça fonctionne.
0
Vitaly58 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   19
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
C'est toi qui a mis "url=" ?
0
Vitaly58 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   19
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Change alors en newurl=... (par exemple)
$_GET['url'] est une commande déjà réservée par défaut.
0
AssassinTourist Messages postés 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Comment veux-tu rediriger l'internaute ? Quand il clique sur un lien ?
0
Vitaly58 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   19
 
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 6029 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention   19
 
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