0

使用 iFrame,我网站上的某人可以访问他们的 Facebook 帐户,显示他们的相册列表,然后显示所选相册中的照片。

目前,当用户单击照片时,我会显示一个显示照片路径的对话框。

以上所有工作都完美无缺。

我的下一步是将照片的路径信息传递回我的网页,但我不知道该怎么做,因为我想要传递数据的对象位于 iFrame 之外,因此 Facebook 不知道。我尝试通过在我的网站上包含 iFrame 的 DOM 引用它来自上而下...

parent.client.document.getElementById("FBPhoto").setValue(photoReference);

...但这没有用。

将参数传递给我网站上的 PHP 脚本将不起作用,因为我不想刷新我网站上的页面(因为这会导致用户丢失数据)。

4

2 回答 2

0

从您提供的内容来看,您的 JS 可能是错误的。

做这样的事情可能会给你你需要的价值:

var photoReference = window.frames["iframe-name"].document.getElementById("FBPhoto");

然后你需要把它分配给一些东西:

MyObject.setValue(photoReference);

注意:window.frames["iframe-name"].document.getElementById("FBPhoto")将返回调用的 DOM 元素#FBPhoto,因此将是一大块 HTML。您的setValue()方法可能没有预料到这一点。

我建议您尝试在安装了Firebug的Firefox中运行您的脚本,这将允许您将 的值转储到控制台以查看您返回的内容。photoReference

于 2009-10-31T08:51:36.843 回答
0

Doy...我意识到,由于 Facebook 连接是在专用 iFrame 中运行的,因此重新定向该框架不会有问题,因为无论如何都没有理由让它保持打开状态。

对于任何有兴趣的人,这就是我所做的......

  1. PHP(index.php 内部)显示相册照片。

  2. PHP 还使用 href 标记围绕每个 img 框架。

  3. 该链接指向一个 PHP 文件(在我的网站上),并包含一个带有照片大版本位置的参数(因为我的应用程序正在显示缩略图)。类似于:“<a href="pathToMySite/get-photo.php?photopath=facebook's path ">

  4. 当用户单击所需的照片时,其各自的链接会调用 get-photo.php(在我的网站上)并传递照片的路径。

  5. get-photo.php 然后将对我网站的主 JS 文件的引用插入到文档头部,并将脚本插入到 HTML 文档的正文中。

  6. 该脚本调用一个 JS fetch-photo 函数,并传递它从运行 Facebook 应用程序的嵌入式 iFrame 接收到的路径参数。

  7. JS 函数关闭 iFrame(因为那时我已经完成了 Facebook)并从 Facebook 获取照片。

于 2009-10-31T19:02:29.687 回答