0

iFrame を使用して、私の Web サイトの誰かが自分の Facebook アカウントにアクセスし、フォト アルバムのリストを表示してから、選択したアルバムの写真を表示できます。

現時点では、ユーザーが写真をクリックすると、写真のパスを示すダイアログ ボックスが表示されます。

上記のすべてが完全に機能します。

次のステップは、写真のパス情報を Web ページに戻すことですが、データを渡したいオブジェクトが iFrame の外にあるため、Facebook には認識されないため、その方法がわかりません。Web サイトの iFrame を含む DOM を介して参照することで、トップダウンで行ってみました...

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

...しかし、それはうまくいきませんでした。

私のサイトの PHP スクリプトに引数を渡すことはできません。これは、サイトのページを更新したくないためです (ユーザーがデータを失う可能性があるため)。

4

2 に答える 2

0

Doy ... Facebook接続は専用のiFrameで実行されていたので、とにかく開いたままにする理由がなかったので、そのフレームをリダイレクトしても問題はないことに気づきました。

興味のある人のために、これが私がしたことです...

  1. PHP(index.php内)はアルバムの写真を表示します。

  2. PHPは、各imgフレームをhrefタグで囲みます。

  3. リンクは(私のWebサイト上の)PHPファイルを指しており、写真の大きいバージョンの場所に関する引数が含まれています(私のアプリはサムネイルを表示しているため)。次のようなもの: "<a href="pathToMySite/get-photo.php?photopath=facebook's path ">

  4. ユーザーが目的の写真をクリックすると、それぞれのリンクがget-photo.php(私のサイト上)を呼び出し、写真のパスを渡します。

  5. 次に、get-photo.phpは、私のWebサイトのメインJSファイルへの参照をドキュメントヘッドに挿入し、スクリプトをHTMLドキュメントの本文に挿入します。

  6. スクリプトはJSのfetch-photo関数を呼び出し、Facebookアプリを実行していた埋め込みiFrameから受け取ったpath引数を渡します。

  7. JS関数はiFrameを閉じ(その時点でFacebookを使用しているため)、Facebookから写真を取得します。

于 2009-10-31T19:02:29.687 に答える
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 に答える