如何从父页面捕获url参数并使用Javascript发送到iframe?

时间:2016-12-19 17:47:29

标签: javascript html iframe

我在登录页面上放置了一个iframed表格。当用户从联盟链接进入此目标网页时,会在网址中放置一个参数(http:thelandingpage.com?c3 = 1)。当他们提交iframe表单时,我需要将该变量(c3 = 1)发送到下一页。我怎么能做到这一点?

以下是我正在探索的选项:
从父页面提取参数
注意:此代码放在iframe 中 (JavaScript)的

<script language="JavaScript">
  function processUser()
  {
    var parameters = window.parent.location.search.substring(1).split("&");

    var temp = parameters[0].split("=");
    c3 = unescape(temp[1]);

    //Assign "c3=" to a var
    var c3variable = c3;

    //Append c3 Variable
    document.getElementById("c3").innerHTML = c3variable; 

  }
processUser();


</script> 

(HTML)

<strong>If variable displays, that's a success!</strong>
<br>
c3: <span id="c3"></span><br>

当然,它不能正常工作。它显示iFrame&#34; src&#34;中的第一个参数,而不是父页面的第一个参数。

我无法继续前进,直到我抓住&#34; c3 = 1&#34;参数..但我的下一步是将该变量粘贴在隐藏字段或其他内容中,以便将其作为查询字符串发送到下一页。

请帮忙!

1 个答案:

答案 0 :(得分:0)

解决方案1:将参数直接传递给iframe元素。

家长代码:

window.onload=function(){
    iframe=document.createElement("iframe");
    iframe.src="iframe.php?"+window.location.href.split"?")[1];
    document.body.appendChild(iframe);
}

解决方案2:查找url查询的父级:

<强> I帧:

window.postMessage("url?","parentsurl");
window.addEventListener("message",function(e){
    if(e.data.url){
        Parentsurl=e.data.url;
    }
});

<强>父:

window.addEventListener("message", function(e) {
    if(e.data="url?"){
        window.postMessage({url:window.location.href});
    }
});

请参阅: Access parent URL from iframe