web-dev-qa-db-fra.com

Capturez les paramètres d'URL entrants, puis passez à iFrame Src avec Javascript

Donc, essayer de comprendre comment faire cela avec window.location en Javascript. J'envoie des utilisateurs vers notre site avec une URL ajoutée avec un code Google Analytics que je dois transmettre à un iframe src sur cette page. Je suppose que Javascript pourrait le faire (note - je ne peux pas utiliser PHP) ...

Voici ce que je veux faire:

J'enverrais les utilisateurs sur la page avec toutes les données de campagne avec tact. Par exemple, un utilisateur clique sur ce lien: http://www.xyz.com/index.html?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click

Ils seraient dirigés vers cette page, qui contient alors cet iFrame. Le code côté magasin devrait récupérer utm_source, utm_campaign, utm_medium et inclure ces parties dans le IFRAME SRC Donc, ce bit:

<iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis"></iframe>

devient maintenant:

 <iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click"></iframe>

Toute suggestion javascript serait grandement appréciée. Remarque - Je ne peux pas utiliser PHP.

MISE À JOUR: Cela a fonctionné !! Oui, mais maintenant je dois le modifier un peu:

Donc, disons que l'URL ajoutée qui a été cliquée était la suivante:

http://abc.com/index.html?apple&orange&Peach

et j'ai besoin de l'iframe src pour être ceci

 http://xyz.com/minis?orange&Peach

J'ai déplacé quelques éléments dans le script, mais je n'attrape maintenant que l'orange et non l'autre attribut & (Peach). s'il vous plaît aviser s'il y a une meilleure façon de travailler (sans avoir tous les paramètres et puis selon le lien qui entre, certains des & ne seront pas définis:

<body>

<script type="text/javascript">

$(function() {

var loc = window.location.toString(),
params = loc.split('&')[1],
params2 = loc.split('&')[2],
params3 = loc.split('&')[3],
params4 = loc.split('&')[4],
params5 = loc.split('&')[5],
params6 = loc.split('&')[6],
  iframe = document.getElementById('myIframe');
alert(iframe.src); 
iframe.src = iframe.src + '?' + params + '&' + params2 + '&' + params3 + '&' + params4+ '&' + params5;
alert(iframe.src); 

});
</script>
<iframe id="myIframe" src="http://www.xyz.com/minis"></iframe>

</body>
17
jgrannis

Ce petit extrait devrait faire l'affaire, ici tout ce que vous avez à faire est de saisir le bit après? en tant que chaîne et l'ajouter à la source iframe.

var loc = window.location.toString(),
    params = loc.split('?')[1],
    iframe = document.getElementById('myIframe');

iframe.src = iframe.src + '?' + params;​​​​​​​​​​​​​​​​
16
GillesC