使用iFrame,我网站上的某人可以访问他们的Facebook帐户,显示他们的相册列表,然后显示所选相册中的照片。
目前,当用户点击照片时,我会显示一个显示照片路径的对话框。
以上所有方法都非常有效。
我的下一步是将照片的路径信息传回我的网页,但我不知道该怎么做,因为我要传递数据的对象不在iFrame中,因此未知到Facebook。我尝试自上而下通过我的网站上包含iFrame的DOM引用它...
parent.client.document.getElementById( “FBPhoto”)的setValue(photoReference);
......但那没用。
在我的网站上将参数传递给PHP脚本是行不通的,因为我不想在我的网站上刷新页面(因为这会导致用户丢失数据)。
答案 0 :(得分:0)
从你提供的内容看起来你的JS可能是错的。
做这样的事情可能会让你获得所需的价值:
var photoReference = window.frames["iframe-name"].document.getElementById("FBPhoto");
然后你需要把它分配给某事:
MyObject.setValue(photoReference);
注意:window.frames["iframe-name"].document.getElementById("FBPhoto")
将返回名为#FBPhoto
的DOM元素,因此将成为HTML的一大块。您的setValue()
方法可能没有预料到这一点。
我建议您尝试在安装了Firefox的Firebug中运行脚本,这样您就可以将photoReference
的值转储到控制台,以查看您要回来的内容。
答案 1 :(得分:0)
Doy ......我意识到,由于Facebook连接是在一个专用的iFrame中运行,重新引导该帧不会有问题,因为无论如何都没有理由让它保持打开状态。
对于任何有兴趣的人,这就是我所做的......
PHP(在index.php中)显示专辑照片。
PHP还使用href标签包围每个img框架。
链接指向PHP文件(在我的网站上),并包含一个参数,其中包含照片大版本的位置(因为我的应用程序正在显示缩略图)。类似于:“< a href =”pathToMySite / get-photo.php?photopath = facebook's path“>
当用户点击所需的照片时,其各自的链接会调用get-photo.php(在我的网站上)并传递照片的路径。
get-photo.php然后将对我网站主JS文件的引用插入到文档头中,并将脚本插入到HTML文档的正文中。
该脚本调用JS fetch-photo函数,并传递从运行Facebook应用程序的嵌入式iFrame接收的路径参数。
JS功能关闭了iFrame(因为那时我已经完成了Facebook)并从Facebook获取了照片。