2011-07-12 19 views
2

私のウェブサイトの連絡先ページにiframeがあります。iFrameのフォームが提出されたときを知るイベント

iframeのsrcは、Googleドキュメントフォームを含む別のファイルを指します。

Googleドキュメントフォームが送信されると、そのページは「あなたの回答が記録されました」というGoogleページにリダイレクトされます。

私はこのフォームをiframe内に配置しているため、サイト全体から視聴者をリダイレクトすることはありませんが、代わりにiframeドキュメントのみがリダイレクトされます。

これはすべて問題なく動作しますが、私は自分のメッセージをGoogleの代わりに表示する必要があります。「あなたの応答は記録されました」。

これを行うには、基本的に、iframeがいつリダイレクトされたか、および/または(できれば)フォームが送信されたことを知りたいと思います。私が試した事

...

  • onhaschange = "" iframe要素内の

  • をonSubmit = ""(のiframeのsrcファイルである)フォーム要素の内部

他のアイデアはありますか?

+0

URLがGoogleのメッセージページに1秒ごとに変更されたかどうかを確認する間隔です。 – pimvdb

+0

@pimvdbの場合、urlはiframeのsrc = ""ですか? – Jacob

+0

はい、うまくいくはずです。 – pimvdb

答えて

2

iFrame src change event detection?
読み込まれたコンテンツがGoogleからのもので、適切に反応するかどうかを確認する関数を作成します。

+0

私はこの2時間の方法を試してきましたが、まだ運がありません。私は次に何を試すことができるか考えています。助けてくれてありがとう。 – Jacob

-2

同じドメインです。 iframeを読み込む前にどのように検出するのですか?いくつかのように

$('#iframe').contents().find('a').click(function() { 
    $('#iframe').animate({opacity:0.1},30); 
}); 

もう一つ正しい方法はありますか? iframe blur、src out ... eventのようなものもあります。

0

あまりにも遅いと思いますが...ここに私の答えがあります。私は今日同じクイズをしてきました。

function getIframe(iframeElement){ 
    //retrieves the document element inside of an iframe 
    return iframeElement.contentDocument; 
} 

var iframeElem = document.getElementById('iframeId'); 

iframeElem.onload = function(){ 
    //onload also catches form post sending 
    var iframeDoc = getIframe(iframeTpv); 
    //retrieves the height of the content's body 
    var contentHeight = iframeDoc.body.scrollHeight; 
    //do something ... 
} 
+1

同じドメインの原点に対してのみ動作します。異なるドメインの場合は、iframe内のドキュメントを取得できません。 –

関連する問題