2012-01-25 8 views
0

iframeは別のドメインの親ウィンドウに読み込まれていますが、 iframeとiframeのドキュメントの高さ。 iframeのドキュメントの高さでは、iframeの一番上を意味するのではなく、iframeの内部に読み込まれるドキュメントの先頭(iframeの内側をスクロールすると異なる)です。iframe内の特定のポイントとiframeドキュメントの上部の高さを見つける方法

親ウィンドウのhtmlにあるスクリプト内でこれを実行したいと考えています。上記の理由により、$("iframe").offset().topを使用してiframeのドキュメントの上部を検索すると、iframeの上部が欲しくなりません。 iframeの内部にロードされているドキュメントDOM要素の参照を取得する方法はありますか?

+0

他のドメインの支配権はありますか?異なるドメイン上の異なるウィンドウ間の通信は、メッセージを介して通信するように両方のウィンドウを構成する場合にのみ可能です。 – bennedich

答えて

0

iframeが別のドメインにある場合は、実行できません。 scrollTopポジションを取得するにはcontentDocumentへのアクセスが必要です。明らかにドキュメントがスクロールされる場所を知っているが、ユーザーのセキュリティとの妥協ではないが、別のドメインのcontentDocumentにアクセスすることはブランケットである。

あなたのドメインにPHPファイルがあり、それが他のドメインのページをプロキシした場合、それは別の話です。あなたが唯一のリンクやフォームなしで1ページにアクセスしている場合、このような方法は、実装するのは簡単だろう:

<?php echo file_get_contents("http://example.com/"); ?> 

と...

<iframe src="myproxy.php" id="iframe" /> 

今、あなたはcontentDocumentにアクセスするため、そのことができます内容:

document.getElementById('iframe').contentDocument.documentElement.scrollTop 
// contentDocument.body.scrollTop in some browsers - get both and add them together 

リンクやフォームがある場合、あなたの人生ははるかに難しくなります。まず、あなたのプロキシスクリプトを通過するためにすべてのURLを書き直す必要がありますし、ソケット機能またはcURLをPOSTのデータを他のサーバーに使用する必要があります。 1ページ。

関連する問題