【问题标题】:Get data from iFrame URL on every page within the iFrame从 iFrame 中每个页面上的 iFrame URL 获取数据
【发布时间】:2015-02-18 10:52:36
【问题描述】:

场景

我对 iFrame 源和网站使用相同的 URL。

主要网址是: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。 Main URL 是供我们自己的用户浏览平台的。

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

问题

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

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

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

非常感谢您在这方面的指导。

【问题讨论】:

  • 你使用哪个框架或CMS?
  • 您是否在处理 $_GET 变量来计算 URL?如果您在后续请求中没有收到它们,我敢打赌您没有将它们添加到超链接中。
  • 这与你的问题无关,但是如果你看到你的源代码,你有一个不需要的输出:AN=> <br />http://www.disciplinexgames.com/beta/index 你定义了你的<styles></html>。所以你的 HTML 中有很多无效的东西。仅供参考。
  • @MohammadAlabed 我正在使用基于类的 PHP
  • @lolka_bolka 我打印这些只是为了测试它,否则我不会把它们放在 doctype 之前。

标签: javascript php jquery ajax iframe


【解决方案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';
    });
}

【讨论】:

  • 在 iframe 而不是 cookie 中,我确实尝试过使用 Session 和本地存储。我将第一次 $_GET 数据分配给会话,这对 iframe 非常有用,但是当您直接浏览 disciplinexgames.com/beta/index 时,您会看到合作伙伴的徽标,因为域和目录相同,因此会话也继续存在。而我想要的是直接访问仅显示 DisciplineXgames 的徽标等。
  • 不需要或不推荐使用 Cookies/Session
【解决方案2】:

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

<?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');

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多