Capture los parámetros de URL entrantes, luego pase a iFrame Src con Javascript

Así que trato de descubrir cómo hacer esto con window.location en Javascript. Estoy enviando usuarios a nuestro sitio con una URL adjunta con un código de Google Analytics que necesito pasar a un iframe src en esa página. Supongo que Javascript podría hacer esto (nota: no puedo usar PHP) ...

Esto es lo que quiero hacer:

Enviaría a los usuarios a la página con todos los datos de la campaña intactos. Por ejemplo, un usuario haría clic en este enlace: http://www.xyz.com/index.html?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click

Serían dirigidos a esa página, que luego tiene este iFrame. El código en el lado de la tienda necesitaría recoger utm_source, utm_campaign, utm_medium e incluir estas partes en el IFRAME SRC Así que este bit:

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

ahora se convierte en:

 <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>

Cualquier sugerencia de javascript sería muy apreciada. Nota: no puedo usar PHP.

ACTUALIZACIÓN: ¡Conseguí que esto funcionara! Yay, pero ahora necesito editarlo un poco:

Entonces, digamos que la URL adjunta que se hizo clic fue esta:

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

y necesito que el iframe src sea este

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

Moví algunas cosas en el guión, pero ahora solo agarra naranja y no el otro atributo & (melocotón). indique si hay una mejor manera de trabajar (sin tener todos los parámetros y luego, dependiendo de qué enlace ingrese, algunos de los & estarán indefinidos:

<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>

preguntado el 03 de mayo de 12 a las 17:05

use jquery para obtener los parámetros y luego inserte dinámicamente su nuevo iframe con lo que quiera. simple -

mi código html de iframe contiene un formulario, ¿cómo puedo pasar el parámetro de URL a la acción del formulario de iframe? Gracias de antemano -

2 Respuestas

Este pequeño fragmento debería funcionar, aquí todo lo que tienes que hacer es tomar el bit después. como una cadena y agréguela a la fuente del iframe.

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

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

contestado el 03 de mayo de 12 a las 17:05

por lo que he reunido aquí, pero no está funcionando correctamente. Lo admito, Javascript no es mi fuerte. jsfiddle.net/GLm5f - jgrannis

tienes la identificación incorrecta, te falta la I en mayúsculas como en el JS, es myIframe, no myiframe; mi mal debería haber usado foo sin confusión allí. - gillesc

hmmm... cambié a ID en lugar de nombre y cambié myIframe, pero todavía no lo veo. Una vez que entre con el código adjunto, ¿aparecerá en la fuente de la vista? Entonces, si entro en esa URL de Google Analytics adjunta, ¿la fuente de vista para el iframe src debería tener la etiqueta adjunta? - jgrannis

no funcionará en el violín, no hay ningún parámetro en la ubicación de la ventana y también tenía mootools seleccionado como biblioteca en el panel izquierdo. jsfiddle.net/GLm5f/2 verifique el registro, agárrelos bien, pruébelo correctamente ya que iframe no cargará contenido externo en fiddle. - gillesc

Entiendo que no funcionará en jfiddle, pero no puedo hacer que funcione localmente cuando uso una URL adjunta (localmente). - jgrannis

Sólo tiene que utilizar window.location.search.

const iframe = document.getElementById('frame');
iframe.src = iframe.src + window.location.search;​​​​​​​​​​​​​​​​

Respondido 11 ago 21, 20:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.