如何在extern iframe和site之间交换变量

时间:2010-06-15 11:15:51

标签: html iframe facebook cross-domain javascript

出于开发原因(使用facebook-connect)我将连接iframe放在iframe中。在那种方式,我能够独立于我的IP工作连接东西,而不必在实时服务器上开发。

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

至于好......但是

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

非常感谢@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中访问sessiondata。与触发的AJAX请求间隔一起,这对于开发来说已经足够好了。

问题是,我正在使用CodeIgniter(使用PostgreSQL和session-plugin ecko)并在PostgreSQL驱动程序脚本中遇到内存问题,直到现在我都没想到。