1

このテーマに関する膨大な量の回答と問題に困惑しています。

今、私はiFrameからコンテナウィンドウ/ページへのクロスドメインアクセスを許可しないセキュリティJSの状況を受け入れますが、フラグメント識別子またはpostMessageAPIの多数の記事で引用されている理想的な解像度は本当に困惑しています。

私がやりたいのは、vimeoがやってきたように見えることを再現することです。彼らの新しいiframe埋め込みコード

<iframe src="http://player.vimeo.com/video/17263117" width="400" height="225" frameborder="0"></iframe>

http://a.vimeocdn.com/js/player_combined.opt.js?8ba54を使用しており、親の読み込みページからiframeのソースにリファラーURLを入力できるようです。つまり、www.donkey.com/myvideo.htmlがhttp://player.vimeo.com/video/17263117ページに挿入されます。通常、JSのセキュリティブロックでは、これは単純なparent.location.hrefでは不可能です。それで、私はそれを調べて、これがどのように行われることができるかを見つけるためにガチョウの本当に野生の追跡を行ってきました。

私は彼らのJSを理解しようとし、postMessage APIで遊んだのですが、何も表示できません。どんな指導も大歓迎です。

4

1 に答える 1

4

ソースから取得する必要はまったくありません<iframe>(セキュリティ上の制限により、すでに述べたようにこれは防止されます)。ヘッダーとしてサーバーに渡され、JavaScriptが使用できるようにサーバーによってページにレンダリングされます。optionsページで定義されている変数を見てください。


ここで例を見てみましょう:http ://www.jsfiddle.net/nick_craver/FfuPk/

http://player.vimeo.com/video/17263117へのリクエストを見ると、

リファラーが渡されたことがわかります。

Referer: http://fiddle.jshell.net/nick_craver/FfuPk/show/light/

iframeによって読み込まれたページのスクリプトブロックには、次のように表示されます。

var options = {config: {
               //....
               "referrer":"http:\/\/fiddle.jshell.net\/nick_craver\/FfuPk\/show\/light\/"
               //....
              };

これ、最終的にブラウザからサーバーに送信されるヘッダーからリファラーを取得する方法です。

于 2010-11-30T14:18:52.297 に答える