【问题标题】:how to exchange variables between extern iframe and site如何在外部 iframe 和站点之间交换变量
【发布时间】:2011-03-03 22:37:48
【问题描述】:

出于开发原因(使用 facebook-connect),我将连接 iframe 放在 iframe 中。这样我就可以独立于我的 ip 处理连接事物,而不必在实时服务器上开发。

持有连接按钮 iframe 的 iframe 在我的服务器上,访问与开发人员版本相同的数据库服务器(开发人员版本在 localhsot 上运行)。

尽可能好......但是

如何让父站点知道用户已连接,以便我将他的个人资料图片显示为对此的反应? 我如何对 iframe 中的动作/事件/JS 做出一般反应?有办法吗? iframe 可以将数据发布到父站点吗?比如时间戳和 fb_userid?

如果 iframe 的东西不起作用... 我想将 ip 保存到 fb_userid(到 db)并检查匹配项……但我不喜欢这个主意。

【问题讨论】:

    标签: html iframe facebook cross-domain javascript


    【解决方案1】:

    您可以通过 iframe 的src 属性使用查询字符串格式将变量传递给帧,例如:

    <iframe src="mysite.com?var=test"............>
    

    【讨论】:

      【解决方案2】:

      感谢@Sarfraz Ahmed,您的帖子是我解决方案的灵感来源:

      使用 iframe 的 src,我将当前会话 id 作为 GET 参数发送。

      <iframe src="http://www.online_host.com/scriptxy.php?id_session=<?=session_id()?>"></iframe>
      

      然后 iframe 中的脚本在某些操作后进行回调,例如

      <script>
      location.href="http://localhost/localscript.php?id_session=<?=$_REQUEST['id_session']?>&parameters_here=something";
      </script>
      

      应该注意,GET 参数名称不能是“sessionid”或“sessid”,因为大多数 apache 安装都不允许这样做。

      在 PHP localscript.php 中,您可以执行以下操作:

      session_id($_REQUEST['id_session']);
      session_regenerate_id();
      
      $_SESSION['param1'] = $_REQUEST['param1'];
      ...
      

      现在您可以在当前本地运行的 PHP 中访问会话数据。与触发的 AJAX 请求间隔一起,这对于开发来说已经足够好了。

      问题是,我正在使用 CodeIgniter(使用 PostgreSQL 和会话插件 ecko)并在 PostgreSQL 驱动程序脚本中遇到内存问题,直到现在我才发现。

      【讨论】:

        猜你喜欢
        • 2012-02-27
        • 2015-08-05
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 2023-02-09
        • 1970-01-01
        • 2011-10-29
        相关资源
        最近更新 更多