我有一个客户端的场景,我试图将查询字符串数据从表单1传递到表单2,然后用联系信息预填充第二个表单。表格2是在第一个表格中表示的,并且#34;谢谢你"页。
以下是人们提交第一个表单并重定向到下一页后网址的显示方式......
http://website.com/thanks/?a=First+Last&b=name%40website.com
以下是表格在iframe
中最初加载到该页面的方式<iframe id="form2" src="http://website.com/form2" width="315px" height="340px" frameborder="0" marginheight="30" scrolling="no" sandbox="allow-forms allow-scripts allow-top-navigation"></iframe>
我目前对此脚本的尝试将从URL获取查询字符串数据而不解码它(using an answer from stack overflow),然后使用查询字符串数据重建iframe的源,因此表单2具有要拉取的查询字符串数据,可以预先填充。
<script type="text/javascript">
var QueryString = function () {
// This function is anonymous, is executed immediately and
// the return value is assigned to QueryString!
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
// If first entry with this name
if (typeof query_string[pair[0]] === "") {
query_string[pair[0]] = pair[1];
// If second entry with this name
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]], pair[1] ];
query_string[pair[0]] = arr;
// If third or later entry with this name
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
} ();
window.onload = function loadSite() {
document.getElementById('form2').src = 'http://website.com/form2' + '?a=' + QueryString.a + '&b=' + QueryString.b;
}
</script>
这应该像这样重建iframe代码......
<iframe id="form2" src="http://website.com/form2/?a=First+Last&b=name%40website.com" width="315px" height="340px" frameborder="0" marginheight="30" scrolling="no" sandbox="allow-forms allow-scripts allow-top-navigation"></iframe>
但由于某种原因,它无法正常工作。重建iframe源的功能没有运行,我怀疑它与脚本如何获取查询字符串数据有关。
你知道为什么会这样吗?或者有更好的方法来解决这个问题吗?
感谢您的帮助! :)
答案 0 :(得分:0)
你只是想要查询,你为什么要把它拆开并把它重新组合在一起?
只需使用
var qs = window.location.search;
var myUrl = "http://www.example.com" + qs;
document.getElementById('form2').src = myUrl;