从iFrame中的每个页面上的iFrame URL获取数据

时间:2014-12-19 13:27:40

标签: javascript php jquery ajax iframe

方案

我在iFrame源和网站上使用相同的网址。

主要网址为:https://www.disciplinexgames.com/beta/index

在iFrame中,它是:< iframe src="https://www.disciplinexgames.com/beta/index?key=YW41y7o0ejxWVVWv7tGOv1eZMdsdew&an=pactpro&uname=mark@example.com&web=www.pactpro.net">< /iframe>

Iframe适用于希望在自己的网站上提供服务的合作伙伴,在本例中为http://www.pactpro.net。主URL用于我们自己的用户浏览平台。

因此前端和后端的代码对于两者都是相同的,在iFrame中我们只更改了我们的合作伙伴提供的徽标,名称,背景颜色等。

问题

问题是第一次加载iFrame时,我可以使用$_REQUEST$_GET从网址获取以下内容。但是当用户进入iFrame中的其他页面时,$_GET['key']返回空白,因此无法从URL获取数据。

key=YW41y7o0ejxWVVWv7tGOv1eZMdsdew
an=pactpro
uname=mark@example.com
web=www.pactpro.net

我们第一次可以从 iFrame src 获取每个页面上的数据。 iFrame源始终保持不变,但是当从iFrame源获取数据时,它返回空白。

我非常感谢您对此的指导。

2 个答案:

答案 0 :(得分:0)

关于我的评论,请看一下这个函数

<?php
function hyperlink($url, Array $persist, Array $source) {
    $variables = array();

    foreach ($persist as $key)
    {   
        if (isset($source[$key]))
        {       
            $variables[$key] = $source[$key];
        }       

    }   

    return $url.'?'.http_build_query($variables);
}

在您的模板上,每次要输出URL时都必须执行

<?php echo hyperlink('http://example.com', $iframe_vars, $_GET); ?>

$iframe_vars必须是一个数组,其中包含您与iframe一起使用的变量的名称,并且必须在请求之间保留

<?php
$iframe_vars = array('key','an','uname','web');

答案 1 :(得分:-1)

iframe中的网站必须在看到您的$ GET参数时设置Cookie并在下次请求时检查Cookie

修改

如果网站位于iframe中,您还可以使用javascript更改所有链接以添加密钥。

if (window!=window.top){
    var list = document.getElementsByTagName('a');
    [].forEach.call(list, function(el){
        el.href += el.href.indexOf('?')>0 ? '&key=yourKey' : '?key=yourKey';
    });
}