将参数从网站网址传递到iframe网址

时间:2017-12-26 10:06:56

标签: javascript html url iframe

我尝试从网站网址中获取参数并传递给iframe网址。网址网址如下:

www.example.com/en/open-account/Redirect?linkID=demo1064&referral_id=0010962

上面的URL有2个参数(linkID和referral_id)。也许有更多参数(2-8个参数)。 它看起来像iframe:

<iframe frameborder="0" scrolling="no" class="frameboxlive" src="https://login.example.com/demo_signupiframe=1&linkID=demo1064=&referral_id=0010962=&ref= www.example.com/en/open-account/Redirect?linkID=demo1064&referral_id=0010962&clang=en" width="700" height="800" align="center"></iframe>

iframe网址必须自动生成并包含以下部分:

  1. 主要网址:https://login.example.com/demo_signupiframe=1
  2. 来自网站网址的参数
  3. 包含网站网址
  4. 的参数引用
  5. 最后,包含语言的参数clang。该语言位于网站网址中,但不作为参数。
  6. 使用Javascript做任何建议吗?提前致谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

<iframe frameborder="0" scrolling="no" class="frameboxlive" src=""></iframe>

<script>
    var mainUrl = "https://login.example.com/demo_signupiframe=1";
    var urlParams = new URLSearchParams(window.location.search);
    urlParams = urlParams.toString();
    var ref = document.URL;
    var clang = 'clang=' + document.location.pathname.split('/')[1];

    var iframeUrl = mainUrl + '&' + urlParams + '&' + urlParams + '&' + ref + '&' + clang;

    document.getElementsByTagName("iframe")[0].src = iframeUrl ;

</script>

答案 1 :(得分:0)

您可以使用以下代码段从网址获取所有查询字符串,操作并将其传递给iframe网址。

如果您想使用类似的东西静态检索对象

var linkID = getUrlVars()[&#34; linkID&#34;]; var referral_id = getUrlVars()[&#34; referral_id&#34;];

function getUrlVars() {
  var vars = [], hash;
  var query_string = window.location.search;
   if (query_string) {
        var hashes = query_string.slice(1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars[hash[0]] = hash[1];
        }

        return vars;
    } else {
        return false;
    }
}

注意:在检索之前对URL组件进行编码。

答案 2 :(得分:0)

我遇到了类似的问题,只需要从URL中提取查询字符串变量即可。...

父母:

example.com?&booking=completed&bookingnumber=12345等...

在iframe中:

myapp.com <<缺少参数...

@Faly的回答对我有所帮助,但是我简化了它。它仍然是跨域的,并且到2020年11月都可以在所有浏览器中使用

在要嵌入iframe的父页面example.com中:

  <iframe frameborder="0" class="frameboxlive" src="" height="800"></iframe>

  <script>
  var mainUrl = "myapp.com"; // the-page-that-you-want-to-embed
  var urlParams = new URLSearchParams(window.location.search);
  urlParams = urlParams.toString();
  var ref = document.URL;
  var clang = 'clang=' + document.location.pathname.split('/')[1];
  var iframeUrl = mainUrl + '?&' + urlParams;
  document.getElementsByTagName("iframe")[0].src = iframeUrl ;
 </script>

就是这样。然后从父URL中用您的查询字符串填充“ mainUrl”:

myapp.com?&booking=completed&bookingnumber=12345