Estoy tratando de obtener parámetros de URL de un enlace de página para completar previamente un formulario en un iFrame, pero tengo problemas con los parámetros que devuelven 'nulo' y necesito orientación. Hasta ahora, la secuencia de comandos parece funcionar completando el formulario con "null", sin embargo, está completando sin éxito los parámetros que tienen valores válidos en mi URL. El javascript debajo de 'f.src' es una secuencia de comandos proporcionada por mi servicio de formularios.
(Me disculpo por los feos console.logs, pero los estoy usando para solucionar problemas).
*** ACTUALIZACIÓN: con mi código actualizado, por sugerencia del usuario, actualicé mis declaraciones .get para especificar el parámetro con una cadena, pero aún devuelve 'nulo'.
try{ var endpoint = "https://forms.myformsite.com/"; console.log(endpoint); var url_string = "https://my.site.com/landingpage?fname=Jeff&lname=Bezos&email=jeff@amazon.com&company=Amazon&title=Founder"; /*window.location.href;*/ console.log(url_string); var url = new URL(url_string); console.log(url_string); var fname = url.searchParams.get('fname'); console.log(fname); var lname = url.searchParams.get('lname'); console.log(lname); var email = url.searchParams.get('email'); console.log(email); var company = url.searchParams.get('company'); console.log(company); var title = url.searchParams.get('title'); console.log(title); var formURL = endpoint+"&fname="+fname+"&lname="+lname+"&email="+email+"&company"+company+"&title="+title; console.log(formURL); var f = document.createElement("iframe"); f.src = formURL; console.log(f.src); f.style.border = "none"; f.style.height = "878px"; f.style.width = "90%"; f.style.transition = "all 0.5s ease"; var d = document.getElementById("divFormID"); d.appendChild(f); window.addEventListener('message', function() { var evntData = event.data; if (evntData && evntData.constructor == String) { var zf_ifrm_data = evntData.split("|"); if (zf_ifrm_data.length == 2) { var zf_perma = zf_ifrm_data[0]; var zf_ifrm_ht_nw = (parseInt(zf_ifrm_data[1], 10) + 15) + "px"; var iframe = document.getElementById("divFormID").getElementsByTagName("iframe")[0]; if ((iframe.src).indexOf('formperma') > 0 && (iframe.src).indexOf(zf_perma) > 0) { var prevIframeHeight = iframe.style.height; if (prevIframeHeight != zf_ifrm_ht_nw) { iframe.style.height = zf_ifrm_ht_nw; } } } } }, false); } catch (e) {} })();```Para todas las llamadas .get() , está pasando una variable (indefinida) en lugar de una cadena:
var fname = url.searchParams.get(fname);Esto debería ser:
var fname = url.searchParams.get('fname');